CVS 1.3

NGNG
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を使ってファイル管理している人の質問と情報交換スレ。
2005/12/10(土) 17:19:29
分散型SCMのいいところは全ての利用者がバージョン管理の恩恵に
与れるところじゃないかな。一度手元にコピーしたら同期する以外で
ネットにアクセスしないってのもいいところ。ログも差分も見放題。
そのプロジェクトが分散型SCMを使ってればの話だけど。
プライベートで使うなら分散型でも集中型でもCVS以外の最近のやつなら
どれも大した差はないように感じる。
Mercurialはリポジトリの複製=ブランチ=ディレクトリのコピーってのが気に入った。
ちょっと枝切って実験して、気が向いたらメインにマージして、
いやならディレクトリごと削除するだけ、ってのが気楽。
CVSでもそういう使い方ができるっちゃーできるんだけど。
2005/12/10(土) 17:35:03
メインに影響を与えないように手前でブランチ切って、
それをさらにメインに追随するようにできるの?
2005/12/10(土) 18:02:39
うんそう。変更履歴とかもちゃんと付いてくる。
っていうかメインとかブランチとかは運用上の区別で、
全てのリポジトリは対等なんだけど。
2005/12/10(土) 20:51:29
>>197
だけどパッチを本流にフィードバックするモチベーションが薄れるという
デメリットもあるんだよね。
コミット権のあるメイン開発者には分散型で、それ以外の利用には
CVSモデルというのがいいかもしれない。
2005/12/16(金) 07:50:18
commitするときのメッセージで、リポジトリ内を検索できないの?
namazuでやろうと入れたら、バイナリファイルをうまくわけることできなくて、検索結果が文字化けで。
cvswebの拡張版みたいなのがあれば良いなと。
2005/12/16(金) 14:31:47
cvs logの結果をnamazuに喰わせれば?
203201
垢版 |
2005/12/17(土) 08:08:42
>>202
thanx。試してみます!

しかし、何か仕様変更したときに、一緒にcommitしたファイルを探すのってすごく面倒。
こまめにバージョンタグ付けるのが良いのか、cvsはそこまで想定していないのか。
2005/12/17(土) 13:17:22
>>203
cvs2cl
2005/12/18(日) 11:02:17
>>203
タグで管理しかしたこと無いな
206203
垢版 |
2005/12/21(水) 22:12:05
>>204
なんだかうまく動作しませんが、情報ありがとうございます。

>>205
影響範囲調べるのに、そのとき、どのファイルが変わったか知りたくて。

cvs2plののち、HTMLに変換できるのがあるようなので、cron使ってHTML更新するようにすれば解決するかなと期待しています。
2005/12/30(金) 12:40:59
>>203
そういう目的のために CVSROOT/loginfo があるんだけど、これはcommit
された時に実行するスクリプトを指定するものなので、commitずみのログに
対しては無力だね。
2005/12/30(金) 15:35:15
>>207
cvs historyで同じ時間にcommitしてるのを調べるとか。
209203
垢版 |
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
2006/01/04(水) 12:32:32
このスレで勧めるのも変かもしれんが、Subversionに乗り換えてみたら。
svn logの出力がまさにそんな感じ。
cvs2svnで一応既存のも変換出来るし。
2006/01/04(水) 15:20:12
>>210
svnか・・・ うーん・・・
2006/01/05(木) 00:04:34
>>209
既出ですが、cvs2cl がピッタリだと思いますよ。
2006/01/05(木) 00:14:27
だからcvs2clだって。
214209
垢版 |
2006/01/05(木) 21:47:18
>>212
cvs2clは、いちどどこかにcheck outしないとだめなようですが(違う?)、
そうではなく、現在のCVSROOTの中から生成する方法はないものか、と思ったのです。

>>210
ありがとうございます。
2006/01/05(木) 23:17:31
>>214
http://lists.gnu.org/archive/html/info-cvs/2005-12/msg00062.html
もしくは、
http://www.elho.net/dev/updatechangelog
216214
垢版 |
2006/01/07(土) 23:42:20
>>215
ありがとう。

Automatically generate ChangeLog on CVS commit using cvs2cl
この一文が素敵です。これから試してみます。
gnu.orgつながらない...
2006/01/13(金) 18:05:49
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できますか。
2006/01/14(土) 12:54:31
>>217
プログラムを実行するやつは
かなり昔から禁止になっている。
最新のだとコードがなくなっている。
2006/01/15(日) 19:21:50
>>218
そうなんですか。
じゃあおとなしくloginfoでupdateする事にします。
ありがとうございます。
2006/01/18(水) 22:02:53
先生質問です

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 を使うから悪い。
2006/01/19(木) 05:45:47
>>220, >>221

うちでも前1.11.19のとき同じ症状が出た。原因はわからなかったけど。
(vendortag / releasetag は違うものにしてた。)
1.11.20にしたら?
2006/01/19(木) 12:10:43
yoyo ってなんですか?
2006/01/19(木) 15:50:57
>>223
ヨーヨー
2006/01/19(木) 17:13:29
ヨヨといえば稀代の悪女だな
226220
垢版 |
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があったので
こちらで試してみようと思います
2006/01/20(金) 00:45:59
>>222
ChangLogとソースを見ると
assert()内でregcomp()してたのが原因。
228名無しさん@お腹いっぱい。
垢版 |
2006/01/20(金) 12:42:33
UP4800でうごきまつか(・ω・)?
2006/04/08(土) 10:34:39
誰も使わないね
230名無しさん@お腹いっぱい。
垢版 |
2006/04/29(土) 12:54:24
cvs(というかRCSファイルというか)で、たとえばブランチ1.1.1の
commitをそのままデフォルトブランチ(1)にもってくる(コピーでもOK)
ツールはないでしょうか。
2006/04/29(土) 23:55:11
>>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 でもいいと思うけど。
232230
垢版 |
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でデフォルトブランチへ持ってきていないのですが、いざ使う
となった時に「ブランチは面倒」ということになって、さてどうしようかと...
2006/04/30(日) 12:43:47
>>232
そういう意味でしたか。
RCSファイルレベルで考えるとメイントランクとブランチでは差分をとる方向が違うので実現はなかなか難しそうです。
ちょっと違いますが
cvs admin -b 1.1.1 でメイントランクを変えてしまうのはどうでしょうか。
234232
垢版 |
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
してるのですが、
普通こういうものなのでしょうか?

コミットされてエクスポートされてないファイルのみをエクスポートすることって
できないでしょうか?
よろしくお願いします。
2006/05/09(火) 22:25:16
>>235 チェックアウトすればいいんじゃなかろうか?
237235
垢版 |
2006/05/10(水) 16:41:06
>>236
あう・・・そのとおりですね。すいません
2006/06/13(火) 03:27:25
RCSを使ってる人は誰もいないのですか?
2006/06/13(火) 09:22:15
1ファイルだけのお手軽複数世代バックアップとしてつこてるよ
2006/06/13(火) 15:45:35
ドットファイルや/etc の設定ファイルなんか RCS でバックアップ取ってるよ。
2006/06/13(火) 16:44:05
普通に/etcをCVS管理下にしてる。RCS使いにくいし。
2006/06/13(火) 18:27:48
RCSは少ないファイルには有効みたいですね。
複数ファイルではCVSとSubversionはどっち使えば幸せなのかな?
2006/06/13(火) 20:24:28
幸せは自分でみつけよう
2006/06/14(水) 02:59:29
rcs ぜんぜん使いにくくないよ。
ときどき ci -l するだけで履歴とバックアップが記録できるんだから
楽なもんだ。
emacs からなら cvs と同じように扱えるし。
2006/06/14(水) 19:46:49
>>244
そりゃ,慣れの問題だからな
2006/06/14(水) 22:23:24
いや、実際問題 -l を知らんとすげー使いにくいと感じると思う
2006/06/17(土) 14:09:46
>>242
社内ではdnsの設定ファイルの管理につかわれている。
248名無しさん@お腹いっぱい。
垢版 |
2006/08/02(水) 11:50:43
subversionの方が評価高そうですけど、
2006/08/02(水) 13:54:06
でもsvnにはリスペクトの精神が感じられないからな・・・
声高に CVS is UNKO! とか唱えてるのを見てると
あまりいい印象を受けないよな。
プロモーション手法としては感心できん
2006/08/02(水) 20:46:52
svnもCVSもワークディレクトリをメタディレクトリで汚すので、
(webのデザインツール+FTPツール)だけを使う人達と仕事をする時には
使いづらいな。
2006/08/02(水) 23:31:19
別に。
2006/08/02(水) 23:58:33
>>250
メタディレクトリというのか?
2006/08/03(木) 01:53:32
>>249
そうは言っても、いまさらSVN使える状況でわざわざCVSは使わんだろう
2006/08/03(木) 02:51:21
>>249
> 声高に CVS is UNKO! とか唱えてるのを見てると

そんなプロモーションあったか?
2006/08/06(日) 13:00:28
Google の Project Hosting は svn のみ対応だね
2006/08/06(日) 20:03:05
CVSって渋いっすね
2006/08/06(日) 20:46:23
SVN って素晴らしいよね
258名無しさん@お腹いっぱい。
垢版 |
2006/08/10(木) 20:23:21
>>250
svk でおk
2006/09/13(水) 20:28:07
$Id$の時刻をJSTにすることってできないんですかね
2006/09/13(水) 20:43:58
できない
2006/09/14(木) 01:58:44
やっぱそーか。
夜遅くまで仕事して、やっとこさでcommitしたのに 14:30 とか出ると脱力するよね。
2006/09/14(木) 10:29:22
始業から14時間半後と考えれば丁度よいのでは。
2006/09/14(木) 14:16:50
>>261
いや、しない。
2006/10/04(水) 23:39:35
>>259
昔パッチを書いたことがある。
2006/10/13(金) 17:37:28
あるホストで新たにディレクトリを掘って,
ファイルを cvs add で追加して cvs commit したあと,
別のホストで cvs update しても,
そのディレクトリが落ちてこないのですが,
どうすればいのでしょうか?
2006/10/13(金) 18:57:24
cvs -d upとかそういう話だよもん?
2006/10/14(土) 00:45:49
>>266
順番が逆だよもん
2006/10/14(土) 00:47:14
.cvsrcに書いてそれっきりだからまちがいたんだよもん
2006/10/16(月) 17:14:06
>>265-268cvs update -dでできました.ありがとうございます.
270名無しさん@お腹いっぱい。
垢版 |
2006/10/25(水) 05:20:44
CVSで、ディレクトリを削除するにはどうするの?
cvs remove directory-name としても、削除されないんだけど。
手動で削除すると、今度はcvs infoのときに「directory-nameがない」というエラーになるし。
2006/10/25(水) 10:26:30
-P
2006/10/25(水) 11:44:42
>>270
cvsは一度作ったディレクトリは削除不可。
>>271の言うようにcvs update -Pすると空のディレクトリはupdate時に
消すようになるので、これを徹底させ、いらないディレクトリは空にしておく。
2006/10/26(木) 05:19:04
>>271,272
thank you
やっぱりsubversionのほうが細部にわたってよくできてると感じてしまう。後発だからあたりまえだけど。
2006/10/26(木) 20:26:45
ウェブアプリを開発するときはソースをどう管理するのがいいんでしょうか?
開発効率を考えると、
作業コピー=開発環境・テスト環境
として、普段はいきなり動作しているサーバのファイルを書き換えてしまう
というのがよさそうですが、リリースするときは CVS ディレクトリを削除
しなければならないですよね。
開発者ごとにローカルにチェックアウトする方法だと、いちいち
コミットしなければ確認できないですし。
2006/10/27(金) 10:55:45
>>274
web サーバ側の設定で CVS/ をアクセス禁止にしちゃえば?
2006/10/27(金) 12:30:30
つうか、CVSが残るのって開発・テスト環境だけだろ? 何か問題あるのか?
サービスマシンにコピーするにはrsync -Cとかcvs exportでいいだろ
2006/10/28(土) 10:15:18
>cvs exportでいいだろ

これは駄目だ。cvs add し忘れているファイルがあるかもしれない。
2006/10/28(土) 16:46:34
>>277
自分は別のホスト(単にVMwareで最小限の環境を組んだだけ)で
checkoutして、自動テストを走らせてチェックするスクリプトを起動している。
手動で継続的結合をやってるわけだ。
……できればレポジトリにコミットされてから数分後に自動で
テストが走るようにしたいが、時間が無くて手を付けてないけど。
2006/12/13(水) 17:31:45
初心者の質問かもしれませんが・・・

CVSではCVSのツリー全体にロックをかけることはできるのでしょうか?
(ClearCaseではVOBにロックをかけて登録を出来なくすることが出来た)

どういうことがしたいかというと、ビルド最中にはCVSにあるソース全体に
ロックをかけて登録不可にして、ビルド成功後にソースを開放、っていう
風にしたいのです。また、ロックをかけておけばエラー発生時に誰が
エラーなのか探しやすいと思って・・・

スレ違いなら誘導お願いします。
2006/12/13(水) 21:15:00
誰かがコミット中の時にロックを掛けてしまうと、いまいちの様な気がする。
1. aliceがA.c, B.c, C.cをコミット中に、
2. bobが、A.cがコミットされた直後にロックを掛ける。
3. aliceはB.cとC.cをコミットできない……この3つのファイルをコミットしないと
コンパイルエラーになるのに。
2006/12/13(水) 21:46:26
単にビルド開始時刻かビルドのためにチェックアウトした時刻を
記録しとけば済む話。

> ロックをかけておけばエラー発生時に誰がエラーなのか探しやすい
全然関係ないだろう。
2006/12/13(水) 23:43:44
>>279
cvslock
2006/12/15(金) 00:51:18
おいらはコミットしちゃダメよーって連絡するだけだなー
ビルド成功したらコミットOKと再度連絡。

あとはコミットした通知をリアルタイムにメールで受け取るようにしとくだけ。
禁止中にコミットしたやつはタコ殴り(^^v
2006/12/24(日) 14:36:08
そういう時はタグを使えばよいでしょう。時刻というのもありだけど、
CVSではブランチを使う時に「あるブランチ上の時刻」というのを
指定できないので、たとえばlogやdiffを取る時などに不便。
285名無しさん@お腹いっぱい。
垢版 |
2007/01/12(金) 14:02:29
ここ過疎ってるけど、mercurial関連の話題も振ってOK?
スレ別に作ったほうがいい? 犬・マ・ム板を見たけどそれらしい
スレはなさそうだった。

トップ
ttp://www.selenic.com/mercurial/
日本語チュートリアル
ttp://www.selenic.com/mercurial/wiki/index.cgi/JapaneseTutorial
2007/01/15(月) 14:32:53
SCM全般のスレが本当はあったほうがいいよね。まあCVSネタは
ほぼないし、とりあえず書いてみてもいいんじゃないかと。
287名無しさん@お腹いっぱい。
垢版 |
2007/01/20(土) 19:42:06
CVSで複数のステージを管理するにはどのようにやったらよいのでしょうか。
ステージ1 開発者がある程度自由にコミットできる場所
ステージ2 システムテスト用
ステージ3 本番用
として、それぞれフェーズをわけた管理をしたい。
モジュールの流れは基本的に開発マシン⇒ステージ1⇒ステージ2⇒ステージ3
の一方通行でよい


SCCSで管理するような親子関係を持てたらよいのかなあと思いました。
ブランチで管理したり、リポジトリを複数持ったりしたのですが、ツールがないためかなりの部分が手作業。
うまく管理できるようなソフトってないのでしょうか。
2007/01/20(土) 19:44:04
>>287
CVS、SVNを利用している人は、コーディング完了=即リリースなので
ステージをわけるとか、そういう概念が無いので、仕様。
2007/01/20(土) 19:50:58
ここでも、デマ、ですか。
2007/01/20(土) 20:03:13
>>287
ステージごとに違う部隊が担当するんだから
repoごと丸投げすればok.
commit -fでrevision numberを1.xx→2.0にあげとくと
気分的にタグの代わりになる。
2007/01/20(土) 20:25:46
「パターンによるソフトウェア構成管理」でも読んでみると良いよ
www.amazon.co.jp/exec/obidos/ASIN/4798112593
2007/01/21(日) 16:19:20
287です
>>290
もう少し詳しく教えてください。
よろしくお願いします。

>>291
ありがとうございます
早速読んでみます。


大規模で開発する場合、どうしても依存関係などがあり、
ひとつのステージのみで開発するのが難しいです。
もちろん、各開発者が素晴らしい技術者の場合なんとかなるかもしれません。
(googleなどもフラットだと聞くので)


根本部分の改修など行った場合、本番に出さず暖めたい場合もあります。
その場合など、ステージがないとうまくいかないような気がします。

未熟な開発者が勝手にソースをコミットしてしまった場合も破綻してしまいます。

みなさんはどのように管理しているのでしょうか。
2007/01/21(日) 17:34:24
Googleがフラットってか、trunkしかないってのはコレのことかな?
ttp://www.dodgson.org/omo/t/?date=20070111
2007/01/21(日) 17:53:22
>>292
|未熟な開発者が勝手にソースをコミットしてしまった場合も破綻してしまいます。

じゃあそいつにコミットビットを与えなければよいのでは
2007/01/21(日) 17:54:19
>>291
げ、日本語訳出てたんか。去年原書買って放置してた。
ttp://www.scmpatterns.com/
2007/01/22(月) 23:25:04
ノートPC上のCVS(開発中)、研究室のCVS(テスト)、sourceforge(リリース)というように複数のサーバを使い分けてる。rsync --exclude CVS でcopyしてからcommitすればOk。もちろん、tag も使うけどね。
2007/01/23(火) 01:29:21
>>296
それってリポジトリは各環境ごとに持ってるってこと?
それともワークディレクトリだけをrsyncで同期かけてるってこと?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況