CVS 1.3
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を使ってファイル管理している人の質問と情報交換スレ。 げんざいのわーくすぺーすにちぇっくあうとされてるりびじょんをたいしょうに するか、あるもじゅーるのにんいのりびじょんをたいしょうにするかのちがいです >>150 ,151 スレ違い。 ttp://pc8.2ch.net/test/read.cgi/prog/1097001387 >>150 rtagはめんどくさい、historyに記録される。 後はみかままにでも教えてもらえ。 Solarisでcvs自体ではなくて cvswebの類で皆さんなに使ってますか? 1.11系と1.12系では結構な違いがあるみたいですが、 CVSってまだ育ってるんですか? WinCvsは2.0じゃないと1.12系のプロトコルに対応してないみたいなので、 わざわざ1.11系のを入れる必要がある。 一応Subversionへの移行も視野にはあるけど、いろいろめんどい。 modulesを使ってできるようなファイルの共有ができないようじゃあ 使う気も失せる。 >>161 それは「ディレクトリ」の共有らしいんよねぇ。 余計なファイルがいっぱい付いてくるのはちょっといやかも。 とはいえ、Subversionも無視はできんからいろいろ調べて みてる。俺にはまだちょっと早いかな。 cvs update -j aaaa -j bbbb と同じことをEclipse上でやりたいんだけど、できる? 「置換」>「別のブランチまたはバージョン」 「チーム」>「マージ」 か? 「チーム」>「マージ」でできました。ありがとう! 開始点・終了点を指定できたのね。 pserverとext:sshのそれぞれのメリットデメリットって pserver CVSの上だけで、独自のアカウント・権限管理ができる。がパスは平文。 ext:ssh 接続はセキュアだけど、サーバ上でのアカウント・権限管理に気を使う。 ってことでOK? つっこみよろしく。 >>166 違いはこれだけでは? pserver パスは平文。 ext:ssh ↑このへん subversion マンセー cvs なんて使ってる奴は糞 linux kernel 以外で git 使ってる奴いないの? SVNは、個人的には使ってるけれど 仕事場では$Id$の変換をサーバ側で 強制できないので使うのを諦めた。 一年以上前に出たのに、1.3って全然使われないね。 だれか、#cvs.wfl〜の消し方わかる? linuxで。 修正したファイルに実行権がついたまま 間違ってコミット。。 チェックアウトしたら全部のファイルに実行権がorz 1つ前のバージョンに戻す方法はないでしょうか。。 >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 にも通報済みです。 HGコマンド foooooh! ttp://www.selenic.com/mercurial/ Mercurialはなんだかモダンな感じがするね。 試しに使ってるけどとにかく気楽。 分散型SCMだから簡単にリポジトリをコピーできるし、 ローカルで好き勝手できるのがいい。 CVSやSubversionと比べてどこがどうなの? いまさらCVS以外を使うなら、Subversionかなあって思ってるんだけど 分散型SCMのいいところは全ての利用者がバージョン管理の恩恵に 与れるところじゃないかな。一度手元にコピーしたら同期する以外で ネットにアクセスしないってのもいいところ。ログも差分も見放題。 そのプロジェクトが分散型SCMを使ってればの話だけど。 プライベートで使うなら分散型でも集中型でもCVS以外の最近のやつなら どれも大した差はないように感じる。 Mercurialはリポジトリの複製=ブランチ=ディレクトリのコピーってのが気に入った。 ちょっと枝切って実験して、気が向いたらメインにマージして、 いやならディレクトリごと削除するだけ、ってのが気楽。 CVSでもそういう使い方ができるっちゃーできるんだけど。 メインに影響を与えないように手前でブランチ切って、 それをさらにメインに追随するようにできるの? うんそう。変更履歴とかもちゃんと付いてくる。 っていうかメインとかブランチとかは運用上の区別で、 全てのリポジトリは対等なんだけど。 >>197 だけどパッチを本流にフィードバックするモチベーションが薄れるという デメリットもあるんだよね。 コミット権のあるメイン開発者には分散型で、それ以外の利用には CVSモデルというのがいいかもしれない。 commitするときのメッセージで、リポジトリ内を検索できないの? namazuでやろうと入れたら、バイナリファイルをうまくわけることできなくて、検索結果が文字化けで。 cvswebの拡張版みたいなのがあれば良いなと。 >>202 thanx。試してみます! しかし、何か仕様変更したときに、一緒にcommitしたファイルを探すのってすごく面倒。 こまめにバージョンタグ付けるのが良いのか、cvsはそこまで想定していないのか。 >>204 なんだかうまく動作しませんが、情報ありがとうございます。 >>205 影響範囲調べるのに、そのとき、どのファイルが変わったか知りたくて。 cvs2plののち、HTMLに変換できるのがあるようなので、cron使ってHTML更新するようにすれば解決するかなと期待しています。 >>203 そういう目的のために CVSROOT/loginfo があるんだけど、これはcommit された時に実行するスクリプトを指定するものなので、commitずみのログに 対しては無力だね。 >>207 cvs historyで同じ時間にcommitしてるのを調べるとか。 >>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 がピッタリだと思いますよ。 >>212 cvs2clは、いちどどこかにcheck outしないとだめなようですが(違う?)、 そうではなく、現在のCVSROOTの中から生成する方法はないものか、と思ったのです。 >>210 ありがとうございます。 >>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) どうにかならないでしょうか >>220 vendortag と releasetag に同じ TEST を使うから悪い。 >>220 , >>221 うちでも前1.11.19のとき同じ症状が出た。原因はわからなかったけど。 (vendortag / releasetag は違うものにしてた。) 1.11.20にしたら? >>221 ,>>222 返答ありがとうございます # cvs import -m "import TEST" TEST TEST start リポジトリのディレクトリ名:TEST vendortag:TEST releasetag:start ですよね? sunfreeware.comに1.11.20があったので こちらで試してみようと思います >>222 ChangLogとソースを見ると assert()内でregcomp()してたのが原因。 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 でもいいと思うけど。 >>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 でメイントランクを変えてしまうのはどうでしょうか。 >>233 それもやってみたことがあるんですが、残念ながらメイントランクは commitするとリセットされちゃう(というか1.1.1が特別だからなのか 意識せずにcommitすると1.2とかになっちゃって、メイントランクも そっちへ移ってしまう)んですよ。いっそのこと手で一個ずつ書き替え てやろうとも思ったんですが、-kbで放り込んでるやつ(*.gifとか)は 手が出ないかも... 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 チェックアウトすればいいんじゃなかろうか? >>236 あう・・・そのとおりですね。すいません 1ファイルだけのお手軽複数世代バックアップとしてつこてるよ ドットファイルや/etc の設定ファイルなんか RCS でバックアップ取ってるよ。 普通に/etcをCVS管理下にしてる。RCS使いにくいし。 RCSは少ないファイルには有効みたいですね。 複数ファイルではCVSとSubversionはどっち使えば幸せなのかな? rcs ぜんぜん使いにくくないよ。 ときどき ci -l するだけで履歴とバックアップが記録できるんだから 楽なもんだ。 emacs からなら cvs と同じように扱えるし。 いや、実際問題 -l を知らんとすげー使いにくいと感じると思う >>242 社内ではdnsの設定ファイルの管理につかわれている。 でもsvnにはリスペクトの精神が感じられないからな・・・ 声高に CVS is UNKO! とか唱えてるのを見てると あまりいい印象を受けないよな。 プロモーション手法としては感心できん svnもCVSもワークディレクトリをメタディレクトリで汚すので、 (webのデザインツール+FTPツール)だけを使う人達と仕事をする時には 使いづらいな。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる