RCS board:
http://pc5.2ch.net/unix/ Working thread: CVSスレ
head: 1.3
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 3; selected revisions: 3
description: CVSを使ってファイル管理している人の質問と情報交換スレ。
----------------------------
revision 1.3
date: 2004/08/27 21:50:57; author: dayomon; state: Exp; res: +1 -0
CVS 1.3
----------------------------
revision 1.2
date: 2003/03/10 11:10:28; author: コンサルタント; state: Dat; res: +984 -0
CVS(2)
http://pc5.2ch.net/test/read.cgi/unix/1047262230/ ----------------------------
revision 1.1
date: 2001/08/10 18:10:33; author: anonymous; state: HTML; res: +982 -0
CVSを使ってファイル管理
http://pc.2ch.net/unix/kako/997/997434642.html =============================================================================
そろそろSubversionに
うーむ、最近だと画像入りのHTMLで書いたマニュアル含むようにしているから Subversionしか使わなくなったなぁ。
枯れぬなら 枯れるまで待とう 新アプリ
svn mv cvs arch
11 :
名無しさん@お腹いっぱい。 :04/09/10 14:35:06
cvsをつかうので export CVSROOT=$HOME cvs init mkdir myproject cd myproject echo "test test test" > test.txt cvs import -m "My Project" myproject hoge myproject_1_1 とやると cvs [import aborted]: attempt to import the repository というメッセージがでてうまくimportできません。 OSはFreeBSD5.2.1 cvsは1.11.5です たすけてエロい人
>>11 あまりにバカ過ぎる。
そのままでは到底CVSをまともに使えそうには望めないから、
適当な入門ページをぐぐって読め。
>>12 適当な入門ページをググって読みました。
事故解決しました。
CVSROOTを勘違いしてました。
逝ってきます
authorってログイン名以外にできる?
>>14 調べずに書くけど $user, $username ではないの?
16 :
名無しさん@お腹いっぱい。 :04/09/28 17:50:42
-u とかでパッチ作るときに $Log$で生成された行はパッチの対象外にしたいんだけど どうすりゃいいかね がんばるしかない?
あと $Id$も対象外にしたいな こっちはまあなんとかなりそうだけど
>>19 file is unchanged; reverting to previous version
done
>>22 そこwincvs specificな話ばっかりじゃねーか
でも見てるとUNIXだと問題にもならんようなネタばっかだぜ。
まあ厨問の多い料理店は見掛け上は繁盛するな
28 :
名無しさん@お腹いっぱい。 :04/11/07 05:01:53
CVS内で使われるdiffってなんなの? 本物のdiffのサブセット?
>>29 だって本物のdiffと比べて、使えるオプションとか全然違うじゃん。
cvsがラッパーになってオプションを置き換えつつ本物を呼んでるのか
それとも中にdiffのようなものがあってそれをコールしてるのか。
/usr/bin/diff とか、その辺のやつ
GNUのdiffは本物のdiffではない
じゃあ偽者でもいいや とにかく、cvsが使ってるdiffと、/usr/bin/diffにあるdiffとは オプションも動作も似てるけど別物だから 困っちゃうよね という話
ソース見れ GNU の diff が入ってる
そうですか
スマソ 違った cvs diffがrcsdiff呼んでdiff(1)が実行されるのですね その過程でオプションがもぎ取られていくのでは
全部のソースが見られるのに、なんだこいつは
>>38 二言目には「ソース見れ」ってのは よくない風潮だよ
OK cvsの仕様バグってことがわかったので ありがとう
>>39 なんでも「ソース見れ」はよくないが
今回の件はソースを読むのが一番早くて確実でしょ。
43 :
名無しさん@お腹いっぱい。 :04/11/27 10:09:10
pserverを立てる方法は結構いろんなサイトに載ってたりするのですが extの立て方を立てるサイトがなかなか見つかりません。 説明されているサイト等を教えていただけませんでしょうか。
釣られないぞー
こんなスレ要らないな めい一杯いらない
CVS自体要らないな 姪一杯いらない
どうせならRCSのスレにしようぜ って誰も使ってネーーーーーーーー あーたのしーー
branchとタグの話を詳しく解説したサイトってない? Free BSDの場合とかも知りたい。
branch ってのはあれだ。 朝飯だか昼飯だか分からん様な時間帯に食う飯のことだ。
それはbrunch。
タンガニカ湖のある内戦の絶えない小国だな。
Burundiかよ
茶化してくれてthx。
54 :
名無しさん@お腹いっぱい。 :04/12/07 16:27:21
すいません、教えてください。 とあるオープンソースのソフトを改造しようと思って自前のリポジトリに入れてみたんですが、 // $Id で始まる行が変えられてしまっていました。これってCVSの管理用キーワードということ らしいんですが、みなさんこういう(元々CVSで造られたものを新たにリポジトリに入れる)場合って どうしてますか? 気にしない?
57 :
名無しさん@お腹いっぱい。 :04/12/08 23:52:36
しかしCVSと同機能+αなものを、綺麗に実装しなおしてくれるなら 喜ばしいことだ。
俺がイメージキャラクターを書き直してやるよ CVSたんって今何歳だっけ
1.12.10歳
62 :
54です :04/12/09 16:32:28
>56 どもです。 $Idとかって絶対必要なのかといつの間にか勘違いしてしまっていました。 別に無ければ無くていいみたいなので、cvs import -koしました。
63 :
名無しさん@お腹いっぱい。 :04/12/13 16:36:35
cvs で www を管理するとします。 そのとき、local copy を cvs commit させたものを httpd から見えるようにするには、自動的に cvs update するよう cron を設定する のが普通ですか?
特に何が普通ということはないです。
>>63 メール通知を利用するのがいいんではないだろうか。
commitinfoにcheckoutするscriptを指定するのが一般的と思う。 でも権限に気をつけれ。
installスクリプト作っとくとかmake installするとかじゃだめかね
ママンに頼んどくとかじゃだめかね
cvs update するものが多重起動した場合の処理、ファイルが むちゃくちゃ多くなって cvs update に時間がかかるように なった場合の問題、CVS/ ディレクトリのアクセス制限処理、 単に static なファイルを取り出すだけじゃなく、HTMLを なんらかのデータ等を元に自動生成するようなページがある場合、 など、状況によりけりだと思う。
WinCVSのように unixのCVSも日本語でログ付けられるんでしょうか?
>>70 コミット時に起動するエディタが日本語入力に対応してれば
ログメッセージは日本語にできる. 日本語入力できなければ, 引数で
%cvs ci -m 'ホゲホゲ'
シェルで日本語入力できなければだめでしょうか?
ごめん. 分からない. 識者の方よろしく.
>>72 「シェルで日本語入力」って意味が分からん。
kinput2とか使って貼りつけるって事か?
>>74 たとえばbashで8bit目を落とすような設定になっていたりすると
(たとえコピペでも)アウトとかね。
それはもうCVSとは関係ない問題になってしまうよ。
レポジトリにある、特定の日付のスナップショットをチェックアウトすることってできますか?
manすら読めない77には出来ない
79 :
名無しさん@お腹いっぱい。 :04/12/26 13:07:26
プロジェクト名/サブプロジェクト名/hoge/piyo ってなっててサブプロジェクトのモジュールのみをとりだして使いたい場合 サブプロジェクト以下のファイルだけをcheckoutすることはできますか?
>>79 こういうこと?
cvs co -d サブプロジェクト名 プロジェクト名/サブプロジェクト名
変更のあったファイルだけを表示したいので、 cvs update | grep -G '[AM] ' とかやってみたのですが、これでも「cvs update: Updating hoge」とかが 表示されてしまいます。変更ファイルの情報のみを表示するにはどうしたら いいでしょうか。 シェルはbashです。
>>82 ~/.cvsrcに
cvs -q
diff -u
とか書いとくと便利。あと
update -dP
checkout -P
とかも。ただし-PはCVS管理対象のファイルが一個もないディレクトリを消して
しまうものなので、場合によっては不便かも。
「-q」なんてオプションあったんですね。 設定ファイルも初めて知りました。 ありがとうございます。
>>85 う、むしろそうゆー話だったかもしれません。
何じゃこのリダイレクトは…。orz
勉強逝ってきます。
そこで zsh ですよ
雑種はイラン
z種
CVSサーバで管理されてるあるモジュール配下の、ディレクトリ名やファイル名を取得してツリー表示したいんですけど、 クライアントからコマンドで実現するとしたら、どんな手段がありますか? いったん対象をすべてチェックアウトして、その情報から一覧を作成するというのはナシで。
>>90 自前でpserverプロトコル喋ってがんばる
>>91 それはpserverプロトコルでできることを確認して書いてるんだな?
>>90 コマンドとか言わんとeclipceかwincvs
eclipseのCVSリポジトリービューってあるじゃないですか。 あれと同じような機能のビューをプラグインで作ることになって。 今はWindowsのコマンド叩いてますが、eclipseのプラグインから呼ぶ場合って、 他の手があるのですか?
95 :
名無しさん@お腹いっぱい。 :05/02/03 01:21:57
pserver立てる時に 「/etc/inetd をいじる」 とどの説明書きにも載ってるんですが ウチのredhatにはそんなファイルないです。(xinetdだったらあるけど。) 代わりのやりかた教えてください
そういう内容はLinux板で訊けよ。
97 :
名無しさん@お腹いっぱい。 :05/02/03 01:26:45
Linux板にCVSスレないんすもん
>>95 みたいのは既にCVSの問題じゃないんだってば。
>>95 >>98 $ info cvs
を実行して、「/server_args」と入力してEnter押してみな。ちゃんと
xinetdの設定ファイルの書き方があるだろ。xinetd自身はLinux特有じゃない
からLinux板じゃなきゃいけないこともないよ。
100 :
99 :05/02/03 14:33:09
100ゲト。
>>90 cvs-1.12系だとcvs rls -R とかでいけそうだね。
どうしてわざわざsubversionを使わないのかが分からない
subversion 遅いから嫌。
>>102 fsfsをバックエンドにするとそれなりにスピードが出るよ。
webのコンテンツを根こそぎsnapshot取るのに使っているけど
いまのところSJISのファイル名(「コピー 〜 foo.gif」とか)に
遭遇しない限り問題なく動くしね。
あとまだ試してないけど、WebDAVではなくsvnserveモードで使えば
違いがあるのではないかな?
104 :
名無しさん@お腹いっぱい。 :05/02/14 22:44:23
コミットメール飛ばしてる?ビュンビュン
ViewCVS と cvsweb ってどう違うの? プロジェクト内 web サーバにどっちか動かそうと思っているのですが、 ViewCVS や cvsweb のページを見てみても、機能の違いがわかりません。 どっちもほとんど同じ?
細々とした部分では ViewCVS が好き。 でも ViewCVS の diff が ediff ではないので cvsweb を使ってる。
CVS で、commit すると、Version .... な行の日付とかを書き換えてくれるけ ど、これを書き換えさせないためには、どうしたらいいの?
うちは-koかな。 -kbは罠。
質問です。 NTサーバのpserverをLinuxから使いたいんですけど、ドライブ名ってどうやって指定したらいいですか? 例えばDドライブにリポジトリがあるときに、 % cvs -d :pserver:ユーザ名@ホスト名:d:/hoge/CVSROOT login cvs login: CVSROOT may only specify a positive, non-zero, integer port (not `d:'). cvs login: Perhaps you entered a relative pathname? cvs [login aborted]: Bad CVSROOT: `:pserver:ユーザ名i@ホスト名:d:/hoge/CVSROOT'. % cvs -d :pserver:ユーザ名@ホスト名:/d:/hoge/CVSROOT login Logging in to :pserver:ユーザ名@ホスト名:2401/d:/hoge/CVSROOT CVS password: Bad repository root '/d:/hoge/CVSROOT' となります。 windowsでwincvsからなら使えてます。 よろしくお願いします。
:pserver:user@host:2401:D:/hoge/cvsroot じゃどう?
% cvs -d :pserver:user@host:2401:D:/hoge/CVSROOT login cvs login: CVSROOT may only specify a positive, non-zero, integer port (not `2401:D:'). cvs login: Perhaps you entered a relative pathname? cvs [login aborted]: Bad CVSROOT: `:pserver:user@host:2401:D:/hoge/CVSROOT'. となりました。 使えてるwincvsの設定では :pserver:user@host:D:/hoge/CVSROOT と書いてあります。
parseがうまくいってないだけな気がするから、 unix側のcvsを適当に書き変えちゃえばいいんじゃ
>>115 いろいろ試してるんですけど、うまくいかなくて。
""とかいろんなところに入れてるんですけど。
zshがいけないのかと思ったけど、shでも同じでした。
118 :
名無しさん@お腹いっぱい。 :05/03/15 22:04:01
すいません、初心者な質問です。 CVSサーバのリポジトリに登録してあるモジュールをcheckout した場合、checkoutした人がモジュールをcommitしないと他の人が そのモジュールに対してcheckoutなり、手を加えられないといった ことはおこりませんよね? 例えば、Aさんが"hoge"ディレクトリをcheckoutしたら、Bさんは Aさんが"hoge"ディレクトリをcommitするまで、hogeディレクトリ に対してソースを見る事はできるが、手を出せないといったことは 起こるんでしょうか?用語を間違っているところがあるかもしれませんが よろしくおねがいします。
起きません。 ただし、B氏がcoした後でA氏がciした場合、 B氏はまずupしなければciできなくなります。 upした時に、競合があれば解決してciという流れ。
120 :
名無しさん@お腹いっぱい。 :05/03/15 22:18:03
すばやいレスありがとうございます! なるほど、そういうこともあるんですね。
CVSやSubversionのチェックアウトは、とくにロックをかけずに 「単に作業用コピーとしてローカルに持ってくる」だけ。 基本的には同時に複数の人が別々に作業できる。同じファイル を弄ることも可。 弄る箇所が違えばほぼ自動的に他人の変更箇所も取り込める。 同じ箇所を弄れば衝突箇所が発生しうるが、そこは開発者同士の コミュニケーションで解決する。
>>117 そういうことでしたか。
cvsのソースみてみたけど、よくわからない。。。
123 :
名無しさん@お腹いっぱい。 :05/03/17 13:30:37
/etcにある設定ファイルなどもCVSで管理しています。 前にリポジトリのディレクトリ構造変更に伴い、CVS管理ディレクトリを削除、 再びチェックアウトとしてみたのですが、当然管理していたファイルはすでに存在するため、 コンフリクトのようなメッセージが出て、管理ディレクトリはできるものの、 ファイルは管理対象とはなってくれませんでした。 確かこのときは、対象ファイルを消してはupdateということをやったと思います。 今度リポジトリを別のマシンに移したいので、また同じ作業をしないといけないのですが、 /etcの下すべてのファイルを管理しているわけではないので、いったん全部消す というわけにもいかないので、面倒です。 チェックアウト時、既存ファイルを強制的に上書きするようなことはできないものでしょうか。
強制上書きオプションちと見あたらないのだが、もし リポジトリの位置やアクセス方法が変わっただけなら CVS/RootやらCVS/Repositoryを書き換えるだけで 済んでたことだったのかもね。
>>123 旧リポジトリで
cvs -d <old> ci ...
新リポジトリに移行
cvs -d <new> co -d /<tmp_dir>
diff -rU... /<tmp_dir> /etc | (cd /<tmp_dir>; patch -p ...)
mv /etc /etc.save
mv /<tmp_dir> /etc
ってな, 話ではない?
アドバイスどうも。
>>124 あちこちにあるので、それも結構面倒でして。
>>125 なんか例はややこしいですが、要は一時ディレクトリに管理している分だけ
チェックアウトしておいて、それを上書きすればよさそうですね。今度これやってみます。
sudoersのようにパーミッションを変更する必要があるファイルがあるかもしれませんが。
>>126 Makefile用意してmake installとかinstall.sh用意するとか。
128 :
名無しさん@お腹いっぱい。 :2005/04/24(日) 15:18:21
ま た s p r i n t f か
タイムスタンプがおかしいんだけどどこをいじればいいの
直りました。ありがとうございました!
サマータイムは大丈夫だったのか?
神の人、土下座するので教えてくださいませ。 pserverでは、passwdファイルに user0:**************:cvsuser user1:**************:cvsuser user2:**************:cvsuser ってしとけば、user0〜2まで代理ユーザcvsuserの権限でリポジトリ内を操作してくれてたわけですが、 extssh とかを使うと、ログオンしたユーザの権限でファイルが書かれてしまいます。 複数ユーザを代理ユーザにまとめるにはどうしたらいいのでしょう?
>>134 同じuid,gidでlogin nameの違う複数のaccountを作ったら? サーバがunixなら。
>>136 だってsshでloginしてるのと同じことだからな。
もしくはanoncvsshをちょこっと改造すれば比較的簡単にできそうだが。
というかそもそもそんな状況になることがおかしいぞ。 group writableにするとか手はないのか?
139 :
名無しさん@お腹いっぱい。 :2005/05/14(土) 01:31:35
強引な手っていうか、135は昔から割とよく使う手だよ。 特にuid=0でよくやる。toorとかsuhogeとか。
>>140 そもそも俺には toor 自体があまり良い習慣だとは思えないが。
>>142 suhoge が何か分からんので何とも。
藤ちゃん、乙
Anyone want the commit bit for my suicide...?
>>145 Why do you say anyone want the commit bit for your suicide?
Elizaかよ!
doctor だろ。
>>148 M-x doctorで実行されるのはElizaのelisp実装にすぎない。
cvs tag と cvs rtag のちがいについておしえてくださいませんか。
げんざいのわーくすぺーすにちぇっくあうとされてるりびじょんをたいしょうに するか、あるもじゅーるのにんいのりびじょんをたいしょうにするかのちがいです
(゚Д゚)ハァ?
と、母上が申しておりました。
155 :
名無しさん@お腹いっぱい。 :2005/06/13(月) 19:51:13
(゚Д゚)ゴルァ
母のリポジトリを覗き見したら俺の成長記録が…
>>150 rtagはめんどくさい、historyに記録される。
後はみかままにでも教えてもらえ。
158 :
名無しさん@お腹いっぱい。 :2005/06/19(日) 04:02:55
Solarisでcvs自体ではなくて cvswebの類で皆さんなに使ってますか?
159 :
名無しさん@お腹いっぱい。 :2005/06/20(月) 16:43:39
age
1.11系と1.12系では結構な違いがあるみたいですが、 CVSってまだ育ってるんですか? WinCvsは2.0じゃないと1.12系のプロトコルに対応してないみたいなので、 わざわざ1.11系のを入れる必要がある。 一応Subversionへの移行も視野にはあるけど、いろいろめんどい。 modulesを使ってできるようなファイルの共有ができないようじゃあ 使う気も失せる。
162 :
160 :2005/07/07(木) 10:34:28
>>161 それは「ディレクトリ」の共有らしいんよねぇ。
余計なファイルがいっぱい付いてくるのはちょっといやかも。
とはいえ、Subversionも無視はできんからいろいろ調べて
みてる。俺にはまだちょっと早いかな。
cvs update -j aaaa -j bbbb と同じことをEclipse上でやりたいんだけど、できる?
「置換」>「別のブランチまたはバージョン」 「チーム」>「マージ」 か?
「チーム」>「マージ」でできました。ありがとう! 開始点・終了点を指定できたのね。
pserverとext:sshのそれぞれのメリットデメリットって pserver CVSの上だけで、独自のアカウント・権限管理ができる。がパスは平文。 ext:ssh 接続はセキュアだけど、サーバ上でのアカウント・権限管理に気を使う。 ってことでOK? つっこみよろしく。
>>166 違いはこれだけでは?
pserver パスは平文。
ext:ssh ↑このへん
subversion マンセー cvs なんて使ってる奴は糞
psvn.el使いにくい
cvsなんて面倒なだけじゃん
linux kernel 以外で git 使ってる奴いないの?
uimチームが使ってるよ
173 :
名無しさん@お腹いっぱい。 :2005/11/11(金) 22:19:28
subversion遅すぎ。
SVNは、個人的には使ってるけれど 仕事場では$Id$の変換をサーバ側で 強制できないので使うのを諦めた。
175 :
名無しさん@お腹いっぱい。 :2005/11/13(日) 17:05:40
一年以上前に出たのに、1.3って全然使われないね。
1.3? 1.12の事?
178 :
名無しさん@お腹いっぱい。 :2005/11/24(木) 18:41:19
だれか、#cvs.wfl〜の消し方わかる? linuxで。
rm -f #cvs.wfl*
修正したファイルに実行権がついたまま 間違ってコミット。。 チェックアウトしたら全部のファイルに実行権がorz 1つ前のバージョンに戻す方法はないでしょうか。。
リポジトリ中の *,v から実行ビットを落とす
>181 ご回答どうも有難うございます! しかしながら、*,vがある場所へのアクセス権がないために *,v から実行ビットを落とすことができません。 この場合はやはり cvs update -r バージョン名 とディレクトリごとに地道に繰り返すしかないのでしょうか
>183 ハイ、、腹をくくって依頼してみました。 ファイルが元に戻ってくれることを祈るばかりですorz
無料で使えるCVSサーバをご存知の方はいらっしゃいますか? あくまで私的な利用なので、sourceforgeを利用するまでもない、というレベルです。
>>185 はCVSサーバをホスティングしてるといいたいの?
>>185 俺の家にあるマシンでCVSサーバは無料で使えてるよ。私的な利用もOKだし。
192.168.0.1。 cvsコマンドを実行すれば普通に使える。どんどんやってくれ。
あのぉ、192.168.0.1 は、 わたしが使っている IP アドレスですので 勝手に使わないでください。
なおこの件に付いては、 JPNIC にも通報済みです。
193 :
名無しさん@お腹いっぱい。 :2005/12/10(土) 10:49:41
Mercurialはなんだかモダンな感じがするね。 試しに使ってるけどとにかく気楽。 分散型SCMだから簡単にリポジトリをコピーできるし、 ローカルで好き勝手できるのがいい。
monotoneはどうよ?
CVSやSubversionと比べてどこがどうなの? いまさらCVS以外を使うなら、Subversionかなあって思ってるんだけど
分散型SCMのいいところは全ての利用者がバージョン管理の恩恵に 与れるところじゃないかな。一度手元にコピーしたら同期する以外で ネットにアクセスしないってのもいいところ。ログも差分も見放題。 そのプロジェクトが分散型SCMを使ってればの話だけど。 プライベートで使うなら分散型でも集中型でもCVS以外の最近のやつなら どれも大した差はないように感じる。 Mercurialはリポジトリの複製=ブランチ=ディレクトリのコピーってのが気に入った。 ちょっと枝切って実験して、気が向いたらメインにマージして、 いやならディレクトリごと削除するだけ、ってのが気楽。 CVSでもそういう使い方ができるっちゃーできるんだけど。
メインに影響を与えないように手前でブランチ切って、 それをさらにメインに追随するようにできるの?
うんそう。変更履歴とかもちゃんと付いてくる。 っていうかメインとかブランチとかは運用上の区別で、 全てのリポジトリは対等なんだけど。
>>197 だけどパッチを本流にフィードバックするモチベーションが薄れるという
デメリットもあるんだよね。
コミット権のあるメイン開発者には分散型で、それ以外の利用には
CVSモデルというのがいいかもしれない。
commitするときのメッセージで、リポジトリ内を検索できないの? namazuでやろうと入れたら、バイナリファイルをうまくわけることできなくて、検索結果が文字化けで。 cvswebの拡張版みたいなのがあれば良いなと。
cvs logの結果をnamazuに喰わせれば?
203 :
201 :2005/12/17(土) 08:08:42
>>202 thanx。試してみます!
しかし、何か仕様変更したときに、一緒にcommitしたファイルを探すのってすごく面倒。
こまめにバージョンタグ付けるのが良いのか、cvsはそこまで想定していないのか。
206 :
203 :2005/12/21(水) 22:12:05
>>204 なんだかうまく動作しませんが、情報ありがとうございます。
>>205 影響範囲調べるのに、そのとき、どのファイルが変わったか知りたくて。
cvs2plののち、HTMLに変換できるのがあるようなので、cron使ってHTML更新するようにすれば解決するかなと期待しています。
>>203 そういう目的のために CVSROOT/loginfo があるんだけど、これはcommit
された時に実行するスクリプトを指定するものなので、commitずみのログに
対しては無力だね。
>>207 cvs historyで同じ時間にcommitしてるのを調べるとか。
209 :
203 :2006/01/04(水) 08:46:26
>>207 ,208
ありがとうございます。
↓こんな感じで既存分に対しても表示できたらなと思っています。いつも、CVSROOT内をgrepして同時にcommitしたのを探すのが面倒で。
2005-12-01 14:00:00 ●●の修正←commit時のコメント
/src/java/sample.java
/src/perl/sample.pl
2005-12-01 11:00:00 ●●の機能追加←commit時のコメント
/src/perl/sample.pl
このスレで勧めるのも変かもしれんが、Subversionに乗り換えてみたら。 svn logの出力がまさにそんな感じ。 cvs2svnで一応既存のも変換出来るし。
>>209 既出ですが、cvs2cl がピッタリだと思いますよ。
だからcvs2clだって。
214 :
209 :2006/01/05(木) 21:47:18
>>212 cvs2clは、いちどどこかにcheck outしないとだめなようですが(違う?)、
そうではなく、現在のCVSROOTの中から生成する方法はないものか、と思ったのです。
>>210 ありがとうございます。
216 :
214 :2006/01/07(土) 23:42:20
>>215 ありがとう。
Automatically generate ChangeLog on CVS commit using cvs2cl
この一文が素敵です。これから試してみます。
gnu.orgつながらない...
CVSROOT/modulesに public_html -i /home/user/CVS/CVSROOT/update.sh public_html と書いてcvs co public_htmlを実行すると、 XXX: invalid option -- i cvs server: modules file has invalid option for key public_html value -i /home/user/CVS/CVSROOT/update.sh public_html cvs [checkout aborted]: cannot expand modules と言われます。-iがinvalid optionだと言われても困るわけですが、 これはバグだったりするんでしょうか。 どうすればmodulesにエントリのあるmoduleをcoできますか。
>>217 プログラムを実行するやつは
かなり昔から禁止になっている。
最新のだとコードがなくなっている。
>>218 そうなんですか。
じゃあおとなしくloginfoでupdateする事にします。
ありがとうございます。
先生質問です OS:Solaris8/SPARC CVS:1.11.19(cvs-1.11.19-sol8-sparc-local.gz パッケージを使用) # cvs import -m "import TEST" TEST TEST start とやると cvs [import aborted]: Only numeric branch specifications with two dots are supported by import, not `1.1.1'. For example: `1.1.1'. とimportが失敗してしまいます。 ・リポジトリ内にmkdirで直接ディレクトリ(TEST)を作成 ・作業場所でTESTをチェックアウト ・TEST配下にモジュールを放り込みcvs addで追加 とやれば登録はできましたがimportだけは必ず失敗します エラーの内容も意味がわかりません 「not `1.1.1'. For example: `1.1.1'.」(1.1.1はダメ、例:1.1.1) どうにかならないでしょうか
221 :
名無しさん@お腹いっぱい。 :2006/01/18(水) 23:05:11
>>220 vendortag と releasetag に同じ TEST を使うから悪い。
>>220 ,
>>221 うちでも前1.11.19のとき同じ症状が出た。原因はわからなかったけど。
(vendortag / releasetag は違うものにしてた。)
1.11.20にしたら?
yoyo ってなんですか?
ヨヨといえば稀代の悪女だな
226 :
220 :2006/01/19(木) 22:26:19
>>221 ,
>>222 返答ありがとうございます
# cvs import -m "import TEST" TEST TEST start
リポジトリのディレクトリ名:TEST
vendortag:TEST
releasetag:start
ですよね?
sunfreeware.comに1.11.20があったので
こちらで試してみようと思います
>>222 ChangLogとソースを見ると
assert()内でregcomp()してたのが原因。
228 :
名無しさん@お腹いっぱい。 :2006/01/20(金) 12:42:33
UP4800でうごきまつか(・ω・)?
誰も使わないね
230 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 12:54:24
cvs(というかRCSファイルというか)で、たとえばブランチ1.1.1の commitをそのままデフォルトブランチ(1)にもってくる(コピーでもOK) ツールはないでしょうか。
>>230 そういうツールは聞いたことはないけど
cvs export -r vendor -d module.vendor module
cvs checkout -d module.trunk
module.trunkの下のファイルを消す
(cd module.vendor && tar cf - .) | (cd module.trunk && tar xf -)
かなぁ。
ファイルの数が少ないのなら cvs update -p -r vendor file でもいいと思うけど。
232 :
230 :2006/04/30(日) 09:52:45
>>231 説明が悪かったようです。
たとえばブランチ1.1.1に次のようにいくつかcommitがあるとき、
1.1.1.4 データを追加
1.1.1.3 スタイルを整理
1.1.1.2 処理を追加
1.1.1.1 スクリプトの原形
これらの履歴をデフォルトブランチ(1)に持ってきたいのです
(できれば日付とかcommitlogはそのままで; 1以外のブランチはなくてもOK)
1.4 データを追加
1.3 スタイルを整理
1.2 処理を追加
1.1 スクリプトの原形
もとのブランチ1.1.1はcvs importコマンドで何度かつっこんであるだけで
forced commitでデフォルトブランチへ持ってきていないのですが、いざ使う
となった時に「ブランチは面倒」ということになって、さてどうしようかと...
>>232 そういう意味でしたか。
RCSファイルレベルで考えるとメイントランクとブランチでは差分をとる方向が違うので実現はなかなか難しそうです。
ちょっと違いますが
cvs admin -b 1.1.1 でメイントランクを変えてしまうのはどうでしょうか。
234 :
232 :2006/04/30(日) 13:50:49
>>233 それもやってみたことがあるんですが、残念ながらメイントランクは
commitするとリセットされちゃう(というか1.1.1が特別だからなのか
意識せずにcommitすると1.2とかになっちゃって、メイントランクも
そっちへ移ってしまう)んですよ。いっそのこと手で一個ずつ書き替え
てやろうとも思ったんですが、-kbで放り込んでるやつ(*.gifとか)は
手が出ないかも...
235 :
名無しさん@お腹いっぱい。 :2006/05/09(火) 15:29:55
FreeBSDは5.4を、CVSは1.11.17を使っています。 用件を先に言いますと、CVSで「上書きエクスポート」ってできるでしょうか どういうことかというと・・・ たとえば/usr/local/www/subdomain/wwwにエクスポートするとします。 で、 www# cvs export -d /usr/local/www/subdomain/www -D tomorrow example.com のようにやればできることはわかります。 ですが、 /usr/local/www/subdomain/www にすでにファイルがある場合、上記のコマンドを実行すると、 cvs export: Updating /usr/local/www/subdomain/cvs U /usr/local/www/subdomain/www/.project ? /usr/local/www/subdomain/www/.settings ? /usr/local/www/subdomain/www/htdocs ? /usr/local/www/subdomain/www/inc と表示されてしまい、エクスポートできません。 なので、いちいち www# rm -rf /usr/local/www/subdomain/www と全削除してから、 www# cvs export -d /usr/local/www/subdomain/www -D tomorrow example.com してるのですが、 普通こういうものなのでしょうか? コミットされてエクスポートされてないファイルのみをエクスポートすることって できないでしょうか? よろしくお願いします。
>>235 チェックアウトすればいいんじゃなかろうか?
237 :
235 :2006/05/10(水) 16:41:06
>>236 あう・・・そのとおりですね。すいません
RCSを使ってる人は誰もいないのですか?
1ファイルだけのお手軽複数世代バックアップとしてつこてるよ
ドットファイルや/etc の設定ファイルなんか RCS でバックアップ取ってるよ。
普通に/etcをCVS管理下にしてる。RCS使いにくいし。
RCSは少ないファイルには有効みたいですね。 複数ファイルではCVSとSubversionはどっち使えば幸せなのかな?
幸せは自分でみつけよう
rcs ぜんぜん使いにくくないよ。 ときどき ci -l するだけで履歴とバックアップが記録できるんだから 楽なもんだ。 emacs からなら cvs と同じように扱えるし。
いや、実際問題 -l を知らんとすげー使いにくいと感じると思う
>>242 社内ではdnsの設定ファイルの管理につかわれている。
248 :
名無しさん@お腹いっぱい。 :2006/08/02(水) 11:50:43
subversionの方が評価高そうですけど、
でもsvnにはリスペクトの精神が感じられないからな・・・ 声高に CVS is UNKO! とか唱えてるのを見てると あまりいい印象を受けないよな。 プロモーション手法としては感心できん
svnもCVSもワークディレクトリをメタディレクトリで汚すので、 (webのデザインツール+FTPツール)だけを使う人達と仕事をする時には 使いづらいな。
別に。
>>249 そうは言っても、いまさらSVN使える状況でわざわざCVSは使わんだろう
>>249 > 声高に CVS is UNKO! とか唱えてるのを見てると
そんなプロモーションあったか?
Google の Project Hosting は svn のみ対応だね
CVSって渋いっすね
SVN って素晴らしいよね
258 :
名無しさん@お腹いっぱい。 :2006/08/10(木) 20:23:21
$Id$の時刻をJSTにすることってできないんですかね
できない
やっぱそーか。 夜遅くまで仕事して、やっとこさでcommitしたのに 14:30 とか出ると脱力するよね。
始業から14時間半後と考えれば丁度よいのでは。
あるホストで新たにディレクトリを掘って, ファイルを cvs add で追加して cvs commit したあと, 別のホストで cvs update しても, そのディレクトリが落ちてこないのですが, どうすればいのでしょうか?
cvs -d upとかそういう話だよもん?
.cvsrcに書いてそれっきりだからまちがいたんだよもん
270 :
名無しさん@お腹いっぱい。 :2006/10/25(水) 05:20:44
CVSで、ディレクトリを削除するにはどうするの? cvs remove directory-name としても、削除されないんだけど。 手動で削除すると、今度はcvs infoのときに「directory-nameがない」というエラーになるし。
-P
>>270 cvsは一度作ったディレクトリは削除不可。
>>271 の言うようにcvs update -Pすると空のディレクトリはupdate時に
消すようになるので、これを徹底させ、いらないディレクトリは空にしておく。
>>271 ,272
thank you
やっぱりsubversionのほうが細部にわたってよくできてると感じてしまう。後発だからあたりまえだけど。
ウェブアプリを開発するときはソースをどう管理するのがいいんでしょうか? 開発効率を考えると、 作業コピー=開発環境・テスト環境 として、普段はいきなり動作しているサーバのファイルを書き換えてしまう というのがよさそうですが、リリースするときは CVS ディレクトリを削除 しなければならないですよね。 開発者ごとにローカルにチェックアウトする方法だと、いちいち コミットしなければ確認できないですし。
>>274 web サーバ側の設定で CVS/ をアクセス禁止にしちゃえば?
つうか、CVSが残るのって開発・テスト環境だけだろ? 何か問題あるのか? サービスマシンにコピーするにはrsync -Cとかcvs exportでいいだろ
>cvs exportでいいだろ これは駄目だ。cvs add し忘れているファイルがあるかもしれない。
>>277 自分は別のホスト(単にVMwareで最小限の環境を組んだだけ)で
checkoutして、自動テストを走らせてチェックするスクリプトを起動している。
手動で継続的結合をやってるわけだ。
……できればレポジトリにコミットされてから数分後に自動で
テストが走るようにしたいが、時間が無くて手を付けてないけど。
初心者の質問かもしれませんが・・・ CVSではCVSのツリー全体にロックをかけることはできるのでしょうか? (ClearCaseではVOBにロックをかけて登録を出来なくすることが出来た) どういうことがしたいかというと、ビルド最中にはCVSにあるソース全体に ロックをかけて登録不可にして、ビルド成功後にソースを開放、っていう 風にしたいのです。また、ロックをかけておけばエラー発生時に誰が エラーなのか探しやすいと思って・・・ スレ違いなら誘導お願いします。
誰かがコミット中の時にロックを掛けてしまうと、いまいちの様な気がする。 1. aliceがA.c, B.c, C.cをコミット中に、 2. bobが、A.cがコミットされた直後にロックを掛ける。 3. aliceはB.cとC.cをコミットできない……この3つのファイルをコミットしないと コンパイルエラーになるのに。
単にビルド開始時刻かビルドのためにチェックアウトした時刻を 記録しとけば済む話。 > ロックをかけておけばエラー発生時に誰がエラーなのか探しやすい 全然関係ないだろう。
おいらはコミットしちゃダメよーって連絡するだけだなー ビルド成功したらコミットOKと再度連絡。 あとはコミットした通知をリアルタイムにメールで受け取るようにしとくだけ。 禁止中にコミットしたやつはタコ殴り(^^v
そういう時はタグを使えばよいでしょう。時刻というのもありだけど、 CVSではブランチを使う時に「あるブランチ上の時刻」というのを 指定できないので、たとえばlogやdiffを取る時などに不便。
285 :
名無しさん@お腹いっぱい。 :2007/01/12(金) 14:02:29
SCM全般のスレが本当はあったほうがいいよね。まあCVSネタは ほぼないし、とりあえず書いてみてもいいんじゃないかと。
287 :
名無しさん@お腹いっぱい。 :2007/01/20(土) 19:42:06
CVSで複数のステージを管理するにはどのようにやったらよいのでしょうか。 ステージ1 開発者がある程度自由にコミットできる場所 ステージ2 システムテスト用 ステージ3 本番用 として、それぞれフェーズをわけた管理をしたい。 モジュールの流れは基本的に開発マシン⇒ステージ1⇒ステージ2⇒ステージ3 の一方通行でよい SCCSで管理するような親子関係を持てたらよいのかなあと思いました。 ブランチで管理したり、リポジトリを複数持ったりしたのですが、ツールがないためかなりの部分が手作業。 うまく管理できるようなソフトってないのでしょうか。
>>287 CVS、SVNを利用している人は、コーディング完了=即リリースなので
ステージをわけるとか、そういう概念が無いので、仕様。
ここでも、デマ、ですか。
>>287 ステージごとに違う部隊が担当するんだから
repoごと丸投げすればok.
commit -fでrevision numberを1.xx→2.0にあげとくと
気分的にタグの代わりになる。
287です
>>290 もう少し詳しく教えてください。
よろしくお願いします。
>>291 ありがとうございます
早速読んでみます。
大規模で開発する場合、どうしても依存関係などがあり、
ひとつのステージのみで開発するのが難しいです。
もちろん、各開発者が素晴らしい技術者の場合なんとかなるかもしれません。
(googleなどもフラットだと聞くので)
根本部分の改修など行った場合、本番に出さず暖めたい場合もあります。
その場合など、ステージがないとうまくいかないような気がします。
未熟な開発者が勝手にソースをコミットしてしまった場合も破綻してしまいます。
みなさんはどのように管理しているのでしょうか。
>>292 |未熟な開発者が勝手にソースをコミットしてしまった場合も破綻してしまいます。
じゃあそいつにコミットビットを与えなければよいのでは
ノートPC上のCVS(開発中)、研究室のCVS(テスト)、sourceforge(リリース)というように複数のサーバを使い分けてる。rsync --exclude CVS でcopyしてからcommitすればOk。もちろん、tag も使うけどね。
>>296 それってリポジトリは各環境ごとに持ってるってこと?
それともワークディレクトリだけをrsyncで同期かけてるってこと?
CVSサーバ三つといういうこと。
287です
>>293 そうです。
>>294 運用で逃げるしかないってことですか・・・・・
>>296 それってよいですね。
ただ、
> 根本部分の改修など行った場合、本番に出さず暖めたい場合もあります。
がうまくできないような・・・・
そもそもコミットしなければよいのですが
分散型 SCM を使えば済む話に思えるんだけど CVS でないとだめなの?
>>300 具体的にはどんな分散型 SCM がお勧め?
302 :
名無しさん@お腹いっぱい。 :2007/01/24(水) 16:30:27
287です。
>>302 Mercurialというソフトがあるのですね。
SCCSと同じような考え方なのですね。
分散型SCMという考え方のですか。
試してみます
304 :
名無しさん@お腹いっぱい。 :2007/03/16(金) 22:29:12
間違って -kb として登録したファイルを cvs admin -kkv で直したんですが、すでにクライアントの CVS/Entries に -kb つきで書かれてしまっていて、 cvs up してもキーワード置換が行われません。 全ユーザの作業用コピーを一括で直す方法はないでしょうか。 それともそれぞれのクライアントで、cvs up -A するしかないんでしょうか?
mercurial を windows で使うと、日本語のファイル名が化けちまう。 抽象レイヤもないみたいだし、どうすれば、、、。
>>304 cvs commit -f で強引にリビジョン上げてしまえばいいんじゃね?
>>307 (やってみれば分かるけど) 無理。
ブランチを指定してチェックアウトしている時は-A -rBranchとかだな。
>>306 だからといってファイル名までutf-8で保存するようになると
なんとなくsubversionと同じような(ftpサーバをやっている
linuxマシン上で、WindowsからアップロードしたSJISファイル名の
ファイルがワークディレクトリにあるとコケる)状態になりそうで嫌。
subversion は、Windows 側の設定をちゃんとしとけば UTF-8 の repos で 運用できるじゃん。
>>310 > Windows 側の設定をちゃんとしとけば
これをWindows側から使う奴等に徹底させるのが無理
312 :
名無しさん@お腹いっぱい。 :2007/04/18(水) 23:51:38
最近、$Id$とかのキーワード置換の中の日付形式が突如変わってしまって、 (2006/11/16 -> 2006-11-16) cvs diffで$Id$行が変更されてると表示されたり、 cvs updateするとコンフリクトしたと見なされたりするようになってしまったんだけど、 この原因は何? サーバの側のcvsの設定に関係?それとも、クライアント側?
313 :
名無しさん@お腹いっぱい。 :2007/04/19(木) 23:17:46
ウインドウズで使うならビジュアルソースセイフがCVSなんかよりいいだろう?
>>312 確か結構まえに変更になった。
ソースをみると決めうちだったと思う。
ちなみにCVSではサーバ側が
ほとんどの処理をします。
さすが小学生用のツールだな。
svnのswitchとかはよくわからないんだよぅ
>>316 手元のPC(WindowsでもLinuxでもMacOSXでも)で
ローカルなリポジトリを作って、いろいろ試してみるのが良いよ。
318 :
名無しさん@お腹いっぱい。 :2007/06/13(水) 18:21:28
svnなんだが、あるブランチとあるブランチに、 共通の系統を維持しつつ同時にコミットするにはどうすりゃいい? つまりブランチの一部だけ、他ブランチとフォークしないように(〓共有)したいのだが。
319 :
名無しさん@お腹いっぱい。 :2007/06/13(水) 19:24:08
mercurial-0.9.4になってsymlinkを認識してくれるようになったんだが、 ワークディレクトリがディレクトリへのsymlinkを含む場合、 hg ci -Aを使って自動バージョン管理をしていると困ることになるな。
324 :
名無しさん@お腹いっぱい。 :2007/10/09(火) 11:18:05
cvsのリポジトリがあるサーバーが切り替わる場合の 運用について教えてください。 一台のサーバーに二台のディスク(ad0 ad1)が接続されていて 交代でbootする場合、cvsのクライアント側からどのようにすると 休んでいた方のディスクに休んでいた間の更新を反映できますか? ad0 と ad1 は完全に独立した環境としたいので、サーバーでの コピーは避けたいのです。 二つのOSは同じマシンで同じIPで運用するつもりなので CVSROOTは、ad0 でも ad1でも同じです。
>>324 ad0に2回連続commitしたら
それをad1にcommitしなおすのは
cvs原理的にむり。
clientは昔のことは覚えてないから。
分散リポジトリ系のシステムならできるかもね。
326 :
名無しさん@お腹いっぱい。 :2008/06/10(火) 17:26:30
べ、別にFreeBSDのcvs→subversion移行の話をこっちでやれって言ってるんじゃないんだからね! 誤解しないでね!
cvs log -d "2008-06-10>2008-07-10" で、この間にcommitされたファイルの一覧を取得したいのですが、 どうすればよいでしょうか?
トランクなら、 $ cvs rdiff -s -D "2008-06-10" -D "2008-07-10" モジュール名 でずらずらと出てくるんじゃないかな。 モジュール名指定しないといけないのがめんどいが。 それか普通に history 使うとか。 ブランチは history じゃないとダメだな。
>>328-329 cvs history -ax TMAR -D 2008-06-10
かな。dateで範囲指定はできないっぽいのでsedか何かで切れ
cvs 使い始めました。 ブランチして開発したものを HEAD に取り込もうと cvs -qn update -j xxx -d -P -kk してます。 ずっとうまくいっていたのですが、 HEAD にある $V = '1.0' を $V = '1.1' にしました。 すると、毎回マージするたびに 1.0 と 1.1 のコンフリクトが発生します。 HEAD は 1.1 で、xxx は 1.0 のままで作業を進めたいのです。 この毎回のコンフリクトを回避するにはどうしたらいいでしょうか?
Web サイトを CVS で管理してます。 画像が数千あってマージやコミットに 30 分以上かかってます…。 画像の変化がないことが分かっているときは、 gif や jpg を除いて、html や css だけコミットやマージする方法はありますか?
>>332 updateやcommitコマンドには -I オプションがあるんだけど、
それでだめなら対象のファイルを指定すればよい。
find . -type f ¥( -name '*.html -or -name '*.css' ¥) -print0 | xargs -0 cvs ci
でもたぶんそういう用途にはmercurialやgitみたいに
メタディレクトリをまきちらさないツールのほうが便利だと思う。
334 :
332 :2008/12/09(火) 10:18:46
>>333 かなり速くなりました。ありがとうございます。
mercurial/git も検討しているのですが、
Windows ユーザが日本語が使えない?らしくて…。
スレ違いではりますが。
>>334 mercurialについていえば、そんなことはないと思うけど、
使い方によるのかな。
そろそろ使われなくなってきますか??
バージョンによって、日付表現が YYYY-MM-DD だったり YYYY/MM/DD だったりと 異なることってある? $Id$とかの表現が、コミットしたときとチェックアウトしたときとで 全然違うことがあるんだよ
>>337 '`ィ (゚д゚)/
Debianでありますた。
ソースから入れたのとバイナリパッケージとで違うという…
>>338 (゚д゚)人(゚∀゚)デブナカーマ
いや、ありえるってことがわかっただけで、とりあえず満足しますた。
これで $Id$ やら $Log$ やらを捨てる決心がつきました。
いままでありがとう。
340 :
名無しさん@お腹いっぱい。 :2010/03/21(日) 19:58:44
コミットすると実行属性が無くなるんだけど、これは誰のせい? cvsの設定によるものか、cvsの仕様か、bash等環境のせいか
>>238 わたしもRCSつかってるよ(´・ω・`)
RCSは/etcの下などでファイル単体の管理がしたい時、特にパーミ ションのないディレクトリを勝手にスキャンしにいってエラーに なって欲しくない時にだけ使う。それ以外はmercurialとかgitを 使ってる。
>>340 x 属性のついたファイルをチェックインしたあと、
同じファイルをチェックアウトしたら x がついていない、ってことかな。
手元の WinCVS でもそうなったし、cvs.exe のせいじゃないかな。
実装とかサーバでも違うのかも知れないけど、bash のせいではなさそう。
PG女が通ります。会社給料低。滅びろ!
過疎スレテスト
1.4は?
348 :
名無しさん@お腹いっぱい。 :2014/04/20(日) 20:45:33.37
相変わらずCVSは使いずらいのう・・・
「づらい」な。
使いづらいとか愚痴言ってる奴は*BSD開発に参加する資格なし
351 :
名無しさん@お腹いっぱい。 :2014/07/13(日) 23:00:51.83
cvsから変換したい奴向け俺様メモ。 必ずcvs2svnを使え、cvs2gitやcvs2bzrやcvs2hgは不可だ。 git-svnとかhg convert直接変換とか、cvs-fast-export使おうとする奴は cvs2svn経由が如何に正確か認識しろ。 cvs2svnの後、hg convertで一旦hgにしろ、 これでタグが正しくタグになる。 それから他のVCSに変換しろ。 だが元からsvnのリポジトリをhg convertするな。 svnのタグをサイレントブランチしているクソリポジトリを正しく変換出来ないぞ。この場合はgit-svnが正解だ。
本人理解してるんだろうかこれ
cvsサーバーをインストールしようと思っているのですが、 subversionのようにApacheは必要ですか? Nginx派なのでできればApacheは入れたくないのです
354 :
名無しさん@お腹いっぱい。 :
2014/09/28(日) 08:54:09.92 a