■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50



レス数が1000を超えています。残念ながら全部は表示しません。

CVSを使ってファイル管理

1 :名無しさん@お腹いっぱい。 :2001/08/10(金) 18:10

CVSを使ってファイル管理している人の質問スレ

181 :名無しさん@お腹いっぱい。 :02/03/16 02:29
こんど仕事で rcs を使うことになったのでこのスレ読んでお勉強しようかな。
;; あ、cvs のスレだった。
個人的には cvs の方を覚えたいんだけど。ま、せっかくだから両方覚えよる
ことにしよう。これを機会に .emacs なんかを cvs で管理してみよう。

182 :名無しさん@お腹いっぱい。 :02/03/18 22:29
彼女を CVS で管理スレより下がってるから age

183 :名無しさん@Meadow :02/03/19 14:26
複数人のプロジェクトで使うのに CVS より RCS を使うメリットってあります
か?普通 CVS 使いますよね。

184 :名無しさん@Meadow :02/03/19 14:27
間違えて sage てしまったので age (w


185 :名無しさん@お腹いっぱい。 :02/03/19 14:48
そもそもRCSだと「a.cの1.2とb.cの1.5でバージョン1」「バージョン1の
ファイル全部checkout」みたいな事がやりにくいから、ソース1本位の
小さいプロジェクト位でしか使いたくないな。

そういえばprcsなんてのもあるね。ちょっと触ってみた感じだと
rcs < prcs < cvs
って感じだった。

186 :名無しさん@Meadow :02/03/19 14:54
そうですよね。CVS だと複数ファイル管理するのも簡単ですよね。
なんでうちの会社 RCS 使うとか言いだすんだろ。ていうか何で俺でさえ知っ
てることを誰も知らないんだ。ヘボ会社だなぁ。転職しよ。


187 :183 :02/03/19 14:56
何度もごめんなさい。
RCS なんかクソだ。CVS の方がこんなに便利だ。なんてことが書いてあるペー
ジなんてないですよね。自分で書くしかないか。

188 :名無しさん@お腹いっぱい。 :02/03/19 15:01
>>185
ファイル間の依存関係が低い場合、たとえば /etc 以下の設定ファイルなんか
だと RCS でも良いけど。(ファイルのロックが入るのも、むしろ都合良いし)

189 :185 :02/03/19 17:20
>>187
まずgoogleする癖を付けよう。
http://www-vox.dj.kit.ac.jp/nishi/cvs/cvs-002.html

>>188
確かに。/etcだとパスワードDBとかバイナリファイルもあるし、マシンの
用途がそれぞれ違うと設定もそれぞれ違ったりするからね。

がいしゅつっぽいけど、俺はドットファイルの管理にはCVS使ってる。
新しいマシンでユーザ作ったら、まずcvs co dotfiles; (cd dotfiles; make install )
しちゃうし、どっかのマシンで設定いじった時でもcvs updateで簡単sync。
もちろんマシン/OS依存部分には気を付けないとダメだが。

190 :183 :02/03/19 17:44
>>189
あ、そこは見ました。もうちょっと具体的なのを探してたんですが。思ったよ
うなのはなさそうです。わざわざありがとうございました。



191 :名無しさん@お腹いっぱい。 :02/03/19 18:50
>>98 さんみたいに別ディレクトリ作るんじゃなくて、ホームディレクトリに
ある dotfiles を CVS で管理することってできます? 別のファイルを置いた
ら変なものまで CVS に登録されて問題あるかな、やっぱり。


192 :名無しさん@お腹いっぱい。 :02/03/25 05:13
>>191
それはホームディレクトリ自体をCVSで管理すれば出来ると思いますよ。
importせずにファイル一つずつaddしていけば、余分なファイルを
加えることもないでしょうし。


193 :名無しさん@お腹いっぱい。 :02/03/25 13:59
>>187
単体のファイルなら、RCS の方が適当に気軽に
バージョン管理できるのでいい面もある。
RCS がクソということはないでしょ。

194 :名無しさん@お腹いっぱい。 :02/03/28 03:27
WinCVS を使いたいんですが、日本語の
詳細な解説ってどっかにありますか?


195 :名無しさん@Emacs :02/03/28 04:26
ググれ。腐るほどある。

196 :名無しさん@お腹いっぱい。 :02/03/28 08:44
本当に腐った情報もあるし >>195

197 :名無しさん@お腹いっぱい。 :02/03/28 09:44
どこかのpserverから不定期的に cvs up -dAP しているパッケージがある
じゃないですか。こういうのって前にコンパイル・インストールした時から
どう変化して、今インストールしたばかりのcore吐きまくりバージョンに
変化したかを調べるときに(revision/dateタグが残らないので)不便じゃない
ですか。お前らどうなさっていますか?
俺は
find . -name CVS -type d -exec \
  echo '{}/Entries {}/Root {}/Repository {}/Tag' \; | \
  xargs -n 300 grep '^' | sort > ../revisions/FOO

とやって、あとはlocalの修正もdiffで取ってそれから cvs update しようか、
とか考えています。こういう管理をやってくれるおりこうさんなツールとか
あるのでしょうか? やっぱりdateタグを使うのがいいのかなあ。


198 :名無しさん@お腹いーっぱい。 :02/03/28 11:29
>>196
(;´д`).。oO( 和訳ヘルプが腐っている… )

199 :名無しさん@お腹いっぱい。 :02/04/05 04:46
p2p版のcvsなんてあるのかな?
ないなら、jxtaフレームワーク上のアプリとして
作ったら面白そうかなぁ。
最近シェアードソースなんて変なものが大量に
出回るようになったから(ないよりはあるほうがいいけど(^^;)
こういうので極秘にソースを改変できるようになるとおもしろいかなーなんて。

どうでしょう?

200 :名無しさん@お腹いっぱい。 :02/04/12 10:50
一部の設定ファイルなんかに cvs 使ってますが、
プロジェクトでの利用面からもしっかり知りたいと思ってます。
いろいろ web も見てるのですが、やっぱ本も欲しい。
ってなわけで、お勧めの書籍教えてください。


201 :名無しさん@Emacs :02/04/12 11:12
秀和システム 入門CVSかな。
一人で使うのを、複数人で使う説明もあった。

202 :名無しさん@Emacs :02/04/12 11:21
おいおい!
素直にでびあんぐるにしとけって。

203 :名無しさん@Emacs :02/04/12 11:21
>>202
navi2ch使ってるのに珍しい間違いだな。

204 :名無しさん@お腹いっぱい。 :02/04/12 12:16
>>202
でびあんぐるよりは http://www-vox.dj.kit.ac.jp/nishi/cvsbook/
の方がよかった。


205 :名無しさん@お腹いっぱい。 :02/04/12 15:09
でびあんぐるのやつなら、
一部がWebで公開されてなかったっけ?
CVSの使い方のとこだけで、CVSの運用のところはぬけてるやつ。



206 :名無しさん@お腹いっぱい。 :02/04/13 11:35
>>199
シェアードソースって何?
今はどうやって流通してんの?
あとCVSだと単一のレポジトリに書きにいくからcommitの整合性は保たれるけど、
p2pだとどう?


207 :206 :02/04/20 15:38
>>199 ねえってば。


208 :名無しさん@お腹いっぱい。 :02/04/21 15:17
日本語のテキストファイルを管理したいのですが、
checkin などのときにつけるコメントは、テキストファイルと同じ漢字コードのほうがいいのでしょうか?

もしそうだとすると、
あるプロジェクトではShift JISのファイルを管理する必要があり、
別のプロジェクトではEUCのファイルを管理する必要があるとすると、
この二つのプロジェクトでコメントの漢字コードが違ってきますが、これは問題ないでしょうか?


209 :名無しさん@お腹いっぱい。 :02/04/21 19:24
>>208
ヲレは、前の会社のスクリプト(IIS; SJIS)を管理するのにCVSを使っていて、
コメントはEUCで書いてた。
ただし、,vファイルが壊れたときにエディタで直す場合は、自動コード変換する
ようなエディタを使うとアウトなので、そういう場合に書き戻す時はじゅうぶん
気をつけること。


210 :名無しさん@お腹いっぱい。 :02/04/21 21:24
>>208 wrapperかませば?

211 :ここでいいのかな :02/04/22 01:10
オープンソースなプロジェクトで
contirb されたパッチをあてたとき
Changelog に書く名前とアドレスって
パッチを送ってきた人のを書くもん?
それとも commit した人のを書くもん?

おれは後者がいいと思うんだけど、
「パッチといっしょに Changelog も送れ」って
とこもあるみたいで。

212 :名無しさん@お腹いっぱい。 :02/04/22 01:37
>>211
俺は前者が好き。Changelog の英語考えるのメンドいもん(^^;;
後者だとしても、ダレソレの patch だと Changelog に書くんだよね?
じゃないと、後で振り返るときに困る。


213 :211 :02/04/22 01:54
>>212
> 俺は前者が好き。Changelog の英語考えるのメンドいもん(^^;;
そ、それだけの理由っすか!?
いーじゃん、てきとーで。

パッチを書いたのが誰だろうと
最終的に source tree に統合することを決めるのは committer だから、
commit した人を書くべきだと思うんだけど。

> 後者だとしても、ダレソレの patch だと Changelog に書くんだよね?
もちろん。


214 :名無しさん@お腹いっぱい。 :02/04/24 15:38
ホームページを複数人で管理するのに、cvsを使おうと思ってるのですが、
現在、commitされた変更を反映させるのに毎回checkoutしています。
commitされた時点ですぐに反映させるにはどうしたらよいのでしょうか?


215 :名無しさん@お腹いっぱい。 :02/04/24 15:46
なんで毎回checkoutしてるんよ。普通updateだろ。

「commitされた時点ですぐ反映」って?
commitされたら他人の作業ディレクトリをupdateしろってか? そら無茶だ。

commitlog辺り使えば、commitした時にメールでお知らせとかはできるはず
だけど(俺は実際に設定した事ないけどFreeBSD Projectなんかではやってる)

216 :名無しさん@お腹いっぱい。 :02/04/24 16:33
>>215
> なんで毎回checkoutしてるんよ。普通updateだろ。

あ、そうなんですか。なんとなくこうしてました。

> commitlog辺り使えば、commitした時にメールでお知らせとかはできるはず
> だけど(俺は実際に設定した事ないけどFreeBSD Projectなんかではやってる)

なるほど。contribにいろいろ便利なスクリプトがあることを今発見しました。
どうもありがとうございました。

217 :名無しさん@お腹いっぱい。 :02/04/24 16:51
>>214
ttp://www.ht.sfc.keio.ac.jp/~iwaiwa/cvs/web-management.html
ttp://www.ohnolab.org/~kimoto/how-to-use-cvs-03.html
上のって参考にならない?

つーか,これを CVS for NT でやろうとして悪戦苦闘してるんだが...


218 :214 :02/04/24 17:21
>>217
おぉ!
やはり出来るのですね。
大変参考になりました。ありがとうございました。


219 :名無しさん@お腹いっぱい。 :02/04/24 21:49
>>217
リポジトリをNTに持つなら、むしろCygwin上のcvs使った方が各種ツール
と連携取れて楽かも。apache+cvswebもできるし。

Cygwin標準パッケージの奴はpserverサポートしてないらしくてうまく
動かなかったけど
ttp://www2.raidway.ne.jp/~yzone/dists/cygwin/cvs/
ここのはpserver動いたよ。rshとかssh経由は試してないけどね。

# あ、なんか今まさに1.11.2に更新してる最中みたいだ(w

220 :217 :02/04/25 00:22
>>219
> >>217
> リポジトリをNTに持つなら、むしろCygwin上のcvs使った方が各種ツール
> と連携取れて楽かも。apache+cvswebもできるし。
今やってるのは,ローカルマシン (WIN2000) で CVS for NT &
ANHTTPD + CVSWEB for NT で動いてます.
そこにあるモジュールを別の WIN2000 で動いてる WEBLOGIC で自動 update
をしたいのです.(ちなみに両方のマシンに Cygwin は入ってます)
で,217 であげたサイトを参考にして

#!/bin/sh
rsh -l USRNAME DOMAIN 'cd /cygdrive/c/hogehoge/testDIR; cvs update -d&'

というスクリプト (updatescript) を書いて module ファイルに
testmodule -i C:\home\updatescript testmodule
としてみたんですが,反応無し.
(もちろん bash から updatescript を動かしてみると自動 update は
成功してるのは確認しました)
むー,DOS で動かさなあかんのか,と思って #!/bin/sh を取って
c:\cygwin\usr\bin\rsh -l USRNAME DOMAIN "cd ...; cvs update -d&"
をコマンドプロンプトから実行してみて自動 update の成功を確認.
ということで,updatescript を上記のものにしてみて,ci してみたら
cmd.exe のウィンドウが出てきてそこでストップ.
そのウィンドウを閉じる (右上の × を押す) と初めて自動 update が
出来ている.
コマンドプロンプトで実行するとちゃんとプロンプトは返ってくるのに
何故なんだ,というところです.


221 :217 :02/04/25 00:26
むーう.
>>220
> (もちろん bash から updatescript を動かしてみると自動 update は
> 成功してるのは確認しました)
→ updatescript を動かしてみると update はうまくいきました.

> c:\cygwin\usr\bin\rsh -l USRNAME DOMAIN "cd ...; cvs update -d&"
> をコマンドプロンプトから実行してみて自動 update の成功を確認.
→ コマンドプロンプトから実行してみて update の成功を確認.

つか,長文すみません.


222 :名無しさん@お腹いっぱい。 :02/04/25 02:00
>>221
パスの関係でC:\WINNT\system32\rsh.exeを使ってるとか?


223 :217 :02/04/25 10:41
>>222
会社で確認してみたら,updatescript は updatescript.cmd にして

cd %HOME%
sh updatescript.sh

と記述していて,updatescript.sh で

/usr/bin/rsh -l USRNAME DOMAIN 'cd /cygdrive/c/weblogic/.....; cvs update -d &'

としていました.
(コマンドプロンプトから sh updatescript.sh を実行すると,update は成功)
こうしてるんで,win の rsh を使用してはいないと思うんですが.


224 :名無しさん@お腹いっぱい。 :02/04/25 11:32
この手のわけわからんエラーの時は、cygwin1.dllを疑った方がいいかも。
1.3.9以前なら1.3.10にしてみるとか、既に1.3.10なら逆に1.3.9に戻したり。
cygwin1.dllだけなら入れ替えもそんなに大変じゃないし。
# どのバージョンだったか忘れたけど、非Cygwinアプリとの連動がおかしい
# ってバグも過去にあった

225 :名無しさん@お腹いっぱい。 :02/04/25 13:58
質問お願いします。

下図のように、ブランチ('eda')のあるプロジェクトで、
「同じブランチ内で、二日前との差分を取る」(b2とb3)には
どうすればよいのでしょう?


           b1(4/5)---b2(4/8)---b3(4/10)     (branch 'eda')
           /
a0(4/1)---a1(4/5)---a2(4/8)---a3(4/10)       (trunk)


$ cvs rdiff -D "2 days ago" -r eda modulename
('eda'をcoしたディレクトリで) $ cvs diff -D "2 days ago"

などとすると、b2とb3ではなく、a2とb3の差分が出力されてしまいます。

あらかじめタグを付けておくしか方法はないのでしょうか。。?

226 :名無しさん@お腹いっぱい。 :02/04/25 17:24
>>225
rdiffで-Dだとどの枝から取るのか指定できないと思います。
rdiffじゃなくてdiffつかうとどうでしょう?


227 :225 :02/04/25 21:12
>>226
回答ありがとうございます。

試してみましたが、やはり-Dは幹を指してしまうようです。
$ cvs diff -D "2 days ago" -r eda
$ cvs diff -r eda -D "2 days ago"
だとやはりa2とb3の差分になります。

$ cvs diff -r eda -D "2 days ago" -r eda
みたいな指定は出来ませんし…

228 :名無しさん@お腹いっぱい。 :02/04/25 23:52
>>227
> 試してみましたが、やはり-Dは幹を指してしまうようです。
あらら、ごめんなさい。

えーと、手元のFreeBSDのcontribに入ってるCVSのソースをみたところ、
-jなるオプションがあるようです。

cvs diff -jeda1:yesterday -jeda2:today -u

みたいにできそうなのですが、試してみてもらえませんか?


229 :225 :02/04/26 00:23
>>228
diff: invalid option -- j
rdiff: invalid option -- j

と、怒られてしまいました…が、FreeBSD-4.4Rだからかも。

man cvsすると
       diff [-kl] [rcsdiff_options] [[-r rev1 |  -D  date1  |  -j
       rev1:date1]   [-r  rev2  |  -D  date2  |  -j  rev2:date2]]
       [files...]
とあったので、4.5Rまで上げれば実現しそうです。
(見てた説明書も古かった…http://www.sodan.org/~penny/vc/cvs-ja.html)

どうもありがとうございました!

230 :名無しさん@お腹いっぱい。 :02/04/26 04:47
なんつーか、CVSの超有名なのに直されないバグのひとつだね。

231 :初めてのCVS :02/04/27 00:39
リポジトリ用に Solaris8で user cvs, /home/cvs を作り、
setenv CVSROOT /home/cvsでcvs initすると、
cvs [init aborted]: cannot make directory /home/cvs: Operation not applicable
となっちゃうんですが、ホーム直下にはCVSROOTは作れない
んでせうか。/home/cvs/cvsでとりあえずできましたが。


232 :名無しさん@お腹いっぱい。 :02/04/27 00:46
>>231
んなこたーないと思うけど。
うちは(FreeBSDだけど)mount /optで/opt/cvsなんてしてるし。
パーミッション関係でなんかちょんぼしてたとかじゃないのかねぇ。

233 :初めてのCVS :02/04/27 01:15
ええ、パーミッションは755,775,777とか試したんですが
ダメでした。/home/cvs/cvsは775で出来てます。

234 :CYGWIN T_T :02/04/27 17:44
cygwin の cvs で ssh 経由がうまくいかないのはガイシュツですか?



235 :名無しさん@お腹いっぱい。 :02/04/27 18:24
>>234
少なくとも、importやinitは動いたけど?

236 :初めてのCVS :02/04/27 23:44
ところで、Solarisの流儀に従って、/export/homeをexport
して/homeにmountしているんだが、試しにsetenv CSVROOT
/export/home/cvsでやったら、上手くできた。結果的に
/home/cvs/CVSROOTができたので、まあ良いかと思いimport
したら、~/ 直下にモジュール・ディレクトリがボコボコ出来
ちゃうのね。えれー汚くなるので、結果的にサブディレクトリ
配下に置くことにしましたん。お騒がせ失礼。

237 :nanashi :02/04/27 23:46
>>235
> >>234
> 少なくとも、importやinitは動いたけど?

ssh の設定かね。 こちfらは どうも username がうまくわたってないようだ。



238 :初めてのCVS :02/04/27 23:47
>>236
s/setenv CSVROOT/setenv CVSROOT/

239 :名無しさん@お腹いっぱい。 :02/04/28 08:20
開発 LAN で CVS 鯖立てる話が出てるんだけど、マシンスペック要るかな。
20〜30人に狂う僧 500MHz ノートじゃ、やっぱ厳しい?

240 :名無しさん@お腹いっぱい。 :02/04/28 08:33
>>239
普通の使いかたなら十分かと。


241 :名無しさん@お腹いっぱい。 :02/04/29 02:04
>>239
プログラムソースとか、テキストだけなら楽勝と思われ。
巨大な画像とか音声とか、バイナリファイルを扱うんだとしたら、CPUよりも、LANの線の太さとかメモリがノートでは厳しい。

242 :241 :02/04/29 02:13
で、だ。
巷にある、もしくは自作のバイナリ差分取得ツールをCVSに組み込むにはどうしたらいいんだろう?
もしかして、無理?
ディスクスペースをなるべく圧迫させないようにバイナリファイルのリビジョン管理をしたいのだ。

自称「安い」高価なPerforceは「圧縮して管理します」とかいってますな。

243 :名無しさん@お腹いっぱい。 :02/04/29 13:00
>>242
cvswrappersに -f/-t フィルタとして書く、というのは?


244 :241 :02/04/29 17:27
cvswrappersのオプションって -m / -k だけじゃないの?

245 :243 :02/04/29 17:55
>>244
バグがあるので無効にしてあるみたいね。
ソースには書き方の例も載ってる。

1. $CVSROOT/CVSROOT/cvswrappers には書いてある(こっちはversion 1.11p1)。
2. ttp://ccvs.cvshome.org/source/browse/ccvs/src/wrapper.c


246 :名無しさん@お腹いっぱい。 :02/04/30 22:38
バイナリdiffをグーグってみたが、なかなか見つからないYO!
バイナリの差分ってそれほど需要ないのかな…

247 :名無しさん@お腹いっぱい。 :02/04/30 23:35
xdelta


248 :名無しさん@お腹いっぱい。 :02/05/01 01:38
バイナリとテキストを区別すんのがメンドイ YO!
ディレクトリまるごと簡単に管理する
なんか楽ちんな方法ないかな。

249 :名無しさん@お腹いっぱい。 :02/05/01 01:48
>>248
なんで?
拡張子の種類が多すぎる、あるいは、拡張子が同じでもテクストとバイナリの両方があるってこと?

250 :名無しさん@お腹いっぱい。 :02/05/01 11:12
Unixの習慣だと、binaryそのものよりそれを生成する sourceを
保管するもんだろうからな。意味的に差分とりやすいし。
とはいえ、bitmapとかやはり..


251 :名無しさん@お腹いっぱい。 :02/05/01 14:08
1バイト1行のuuencodeとか。
アホくせー(w

252 :名無しさん@お腹いっぱい。 :02/05/01 14:21
(´-`).。oO(放置しておこう)

253 :名無しさん@お腹いっぱい。 :02/05/01 20:34
じゃあsubversionか。
* Faster network access. A binary diffing algorithm is used to
store and transmit deltas in *both* directions, regardless of
whether a file is of text or binary type.

最近はcheckoutの途中でctrl-cを押すと .svn/ の中身が再開できない状態に
なっちゃったりしないのかなあ。


254 :名無しさん@お腹いっぱい。 :02/05/03 02:39
Subversion使ってる人いますか?
http://pc.2ch.net/test/read.cgi/linux/1002355536/


255 :253 :02/05/04 07:25
>>254
1. そこに書いても誰も反応しない、所詮は犬板
2. そもそもsubversionは犬specificではない
3. きらいやねん犬板


256 :名無しさん@お腹いっぱい。 :02/05/04 13:17
Subversion って、これ?
http://subversion.tigris.org/


257 :名無しさん@お腹いっぱい。 :02/05/04 14:31
(´-`).。oO( Subversionって、perversionとかinversionとか連想して
               なんとなくイヤだなあ…

258 :225 :02/05/08 12:00
>>225です。その節はお世話になりました。
4.5Stableにageたらcvs diff -jが使えるようになりました。
#Concurrent Versions System (CVS) 1.11.1p1-FreeBSD (client/server)
#(cvs -H diffしても-jは出て来ませんが…)

それとは別に、ちょっと気になることがあったのですが:


             b1(4/5)---b2(4/8)---b3(4/11)     (branch 'eda')
             /
  a0(4/1)---a1(4/5)---a2(4/8)---a3(4/10)       (trunk)
  
cvs co -r eda modulenameしたディレクトリ(b3)で
cvs diff -r HEADすると、以前はb3とa3の差分が出力されていたと
思うのですが、今やるとb3とb3の差分(つまりφ)が出力されるようです。
HEADの意味合いが変更(常に幹の最新→その時の枝の最新)になったのでしょうか?

..., two special tags are always available: `HEAD'
refers  to the most recent version available in the
repository, and `BASE' refers to the  revision  you
last  checked  out  into the current working direc-
tory.

と、manにはあるのですが…

#cvs rdiff -r eda -r HEAD modulename、または
#cvs diff -Dtodayとやるとb3とa3の差分が出るようです。

259 :名無しさん@お腹いっぱい。 :02/05/08 12:16
>>257
よーしパパ perversion ってソフト作っちゃうぞー


260 :名無しさん@お腹いっぱい。 :02/05/08 15:25
いきなりですが、CE (HPC) で動く CVSってないでしょうか。
できれば ssh対応で。

これがあるとモバギ生活がさらに楽しくなることうけあい。

netbsd/hpcmips というのがまっとうなんだろうけどNE


261 :名無しさん@お腹いっぱい。 :02/05/08 20:11
全然Unixでの話ではないのですが、下記の環境で WinCVS を使っています。

・LAN内の Win2k server マシンの共有ディレクトリ上にリポジトリを作成
・クライアントは Win2k pro マシン、WinCVS 1.2 + ごった煮を使っています。
・アクセス方式(?)は :local:\\マシン名\共有名\hoge\cvsroot という感じ。

現在、あるファイルが commit できなくなって困っているのですが、
どなたか解決策をご存じの方はいらっしゃいませんか?
commit しようとすると、下記のメッセージが出て commit できない。
WinCVS の画面の下にあるログには下記のように出ています。

---------------
cvs commit -m "メッセージ" filename.txt (ディレクトリ c:\myfolder\内)
Checking in filename.txt;
\\hostname\ShareName\hoge\cvsroot/moduleName/src/filename.txt,v <-- filename.txt
new revision: 1.75; previous revision: 1.74
cvs [commit aborted]: cannot rename file \\hostname\ShareName\hoge\cvsroot/moduleName/src/,filename.txt, to \\hostname\ShareName\hoge\cvsroot/moduleName/src/filename.txt,v: File exists
---------------

実際に \\hostname\ShareName\hoge\cvsroot\moduleName\src をのぞいても、
filename.text,v はありません。

WinCVS の設定は、
[管理]-[設定]-[全般]タブ の CVSのバージョンは、「cvs 1.10(標準)」にしています。
[共通設定]タブでは、読み込み専用でチェックアウト、Dirtyファイルサポート、
空のディレクトリを削除にチェックを入れています。

ちなみに、CVSのバージョンのところで「cvs 1.10(NTサーバ)」にしていたときは、
commit に失敗すると ,filename.txt が残るため、cvs 1.10(標準)にしました。
これでしばらく安定していたのに...


262 :名無しさん@お腹いっぱい。 :02/05/08 20:29
>>261
思いっきり板違いだから他でやっとくれと言いたい所だが...

とりあえず1.1b15
http://www.linkclub.or.jp/~tumibito/soft-an/cvs/download.html
で試してみたら?

# 試す前にリポジトリのバックアップはとっとくよーに

263 :名無しさん@お腹いっぱい。 :02/05/08 22:16
>>258
| HEADの意味合いが変更(常に幹の最新→その時の枝の最新)になったのでしょうか?

そんな…… 枝がHEADにmergeされたとかいう可能性は?

HEADとbranchで内容が違っているファイル foo を、
$ cvs up -prHEAD foo > /tmp/foo.HEAD
$ cvs up -prBASE foo > /tmp/foo.BASE
$ diff -u /tmp/foo.BASE /tmp/foo.HEAD
して調べてみたら?


264 :261 :02/05/08 22:17
>>262 さん
レスどうもありがとうございます。
試してみましたが、結局うまくいきませんでした。

ひとつわかったことがあるのですが、リポジトリ上でcommit できないファイルを
直接リネームしようとすると、windows の「このファイルは共有中です」といって
OSがファイルをロックしてしまい、別のクライアントからアクセスできませんでした。
commit できるファイルは、リポジトリ上のファイルを直接リネームとか
できます。

で、ロックされているファイルを右クリックしてファイルの所有者を調べ、
その所有者のマシンを再起動してもらいロックをはずすことで解決しました。

ちなみに社内の別のチームでも同じことが過去に起っていて、そのときは
win9xなクライアントからアクセスすると同じことが起きました。
この場合はサーバマシンを再起動しないとだめでした。

以上、スーパー板違いで申し訳ありませんでしたが、all windows な環境で
:local 方式で WinCVS を使っている場合の参考になれば幸いです。
(all windows で WinCVS な人は多いと思うんだけど、そういう人はこの板に
いないか...)


265 :名無しさん@お腹いっぱい。 :02/05/08 22:37
>>263
こういう感じでした:

% cvs up -prHEAD foo > /tmp/foo.HEAD
% cvs up -prBASE foo > /tmp/foo.BASE
% diff -q foo.BASE foo.HEAD
Files foo.BASE and foo.HEAD differ
% cvs diff -rHEAD
cvs diff: Diffing .
% cvs diff -rBASE
cvs diff: Diffing .
% cvs diff -rTRUNK_1
cvs diff: Diffing .
Index: install.sh
(...延々と差分...)
% cvs diff -Dtoday
cvs diff: Diffing .
Index: install.sh
(...延々と差分...)

-rHEADでも、-rBASEでも全くdiffが出力されないので、HEADの定義とは
また別個の問題のような気もするのですが。。

266 :263 :02/05/08 23:09
>>265 checkoutされているのはHEADなんじゃ……


267 :名無しさん@お腹いっぱい。 :02/05/08 23:27
>>266
そ、そんな。。

% cvs status install.sh
cvs status install.sh 
===================================================================
File: install.sh    Status: Up-to-date

Working revision:  1.1.1.1.2.3   Mon May 6 12:14:14 2002
  Repository revision: 1.1.1.1.2.3   /usr/home/blabla/cvsroot/modulename/install.sh,v
  Sticky Tag:     eda (branch: 1.1.1.1.2)
  Sticky Date:     (none)
Sticky Options:   (none)

268 :名無しさん@お腹いっぱい。 :02/05/17 14:11
いま loginfo を使って自動 update をする設定にしているんですが,
PCL-CVS でコミットすると自動 update できません.

loginfo に
^html /export/home/users/scm/updatehtml

と書いて,updatehtml には
#!/bin/sh
CVSROOT=/export/home/cvsroot
export CVSROOT
cd /export/home/wwwroot/html
/usr/local/bin/cvs update -dP &

と書いていて,setuid ビットを立てています.

この状態で (/export/home/hoge/html/sample.html を) コミットすると,
コンソールでは
% cvs ci -m "test" sample.html
Checking in sample.html;
/export/home/cvsroot/html/sample.html,v <-- sample.html
new revision: 1.7; previous revision: 1.6
done
cvs update: [13:58:44] waiting for hoge's lock in /export/home/cvsroot/html
cvs update: [13:59:14] obtained lock in /export/home/cvsroot/html
U sample.html

となって自動 update は出来ているのですが,PCL-CVS からだとコミットは
出来ているのですが,自動 update を行ってないのです.
*Message* では

Press C-c C-c when you are done editing.
(No files need saving)
Running cvs commit ...
CVS process has completed

となっていて Error にもなってないようです.

.emacs には
;;; for PCL-CVS
(load-library "pcl-cvs-startup")
(setq diff-switches "-c")
(global-set-key "\C-cv" 'cvs-update)

としてあります.pcl-cvs-2.9.9 です.
何か他に設定がいるのでしょうか.


269 :名無しさん@お腹いっぱい。 :02/05/17 14:40
>>268
シェルスクリプトはsuidできないよーな。

270 :名無しさん@お腹いっぱい。 :02/05/19 18:47
>>236
これって、mountオプションのnosuidとかそういうのが
原因なのかねえ。


271 :初期不良 :02/05/19 22:22
初めて CVS を使うんですが、
php での開発に試しにここにある WinCVS を使ってみました。
http://www.gembook.jp/html/moin/moin.cgi/CvsInfo
何となく慣れてきたんですが、ディレクトリごとアップロードするのに
各ディレクトリに作られる CVS ディレクトリがじゃまなんです。
けど、 http://www.naney.org/comp/cvs/faq/#cvsdirectory
を見るとどうしようもない気もします。
cvsup だったらこの辺の制御用ディレクトリはできないかな?
アップロードの代わりにアップロード先に cvsup と言うのも
ありですか?

272 :初期不良 :02/05/19 22:23
>>271
あ、ローカルに CVSROOT 作って試しています。

273 :名無しさん@お腹いっぱい。 :02/05/19 22:26
(´-`).。oO( CVSディレクトリが邪魔になるって
        一体どういうことをしてるんだろう。。。

274 :名無しさん@お腹いっぱい。 :02/05/19 22:27
>>271
checkoutでなく、exportしたら?

275 :名無しさん@お腹いっぱい。 :02/05/19 22:28
>>271 何をしたいのかわからんがexport使えば?

276 :初期不良 :02/05/19 23:40
>>273
コンパイルの代わりに動作環境にアップロードってな感じなんで、
安定するまでの作業中にディレクトリごとアップロードしたいときに
じゃまになるんです。
>>274-271
どうもです。WinCVS のチェックアウト時のオプションに
「CVS管理用のディレクトリを作らない(export)」と言うのが
見つかりました。けどやっぱり CVS 管理外になってしまって
このまま作業はできないんですね...
どこか別にまとめて持ってくれるだけでも助かるんですが...
テスト環境には管理ディレクトリも気にせずアップロード、
本番環境には export したものをアップロードってのがいいのかな?

277 :名無しさん@お腹いっぱい。 :02/05/20 00:02
(´-`).。oO(GTETの作者なんだろうか…?)

278 :名無しさん@お腹いっぱい。 :02/05/20 00:11
>>276
CVSROOT/loginfoとか使って自動的にftpするとか。
シェル使えるなら鯖側にリポジトリ置いた方が楽かな。

279 :初期不良 :02/05/20 01:32
>>277
...

>>278
loginfo 見てみました。なんか commit 通知をどこに送るか
みたいなことが書いてありましたが、確かに自動的に ftp
させるようなこともできるみたいですね。鯖側に...
そか、コピーするだけでいいような状態にもできますしね。
勉強になります。

280 :名無しさん@お腹いーっぱい。 :02/05/20 10:21
>>279
いや、むしろ

 1. バッチ処理で 「もし export が成功ならば ftp でアプロドする」
または
 2. サーバ側で CVS を動かす
  (クライアント側の CVS から接続できない場合は、
  telnet かなんかで鯖のシェルに CVS コマンドを叩き込む…が、
  これじゃ GUI は使えない)
または
 3. 鯖のディレクトリをクライアントのファイルシステムにマウントする

つーあたりが現実解なのではないかと。


掲示板に戻る 全部 前100 次100 最新50

read.cgi ver5.26+ (01/10/21-)