1 :
名無しさん@お腹いっぱい。 :
2001/08/10(金) 18:10 CVSを使ってファイル管理している人の質問スレ
2 :
名無しさん@お腹いっぱい。 :2001/08/10(金) 18:14
バックアップもかねて、 他のホストにCVSROOTを置いて /etc以下のファイルをCVSで管理したいんだけど、 大丈夫かな? /etcで cvs import foo start とかして、 してrm -rf /etcしてcvs checkout etc すりゃいいような気がするけど、 ちと恐くてねえ。どう思います? OSはFreeBSDです。
3 :
名無しさん@お腹いっぱい。 :2001/08/10(金) 23:04
rm するんじゃなくて まずは mv しておけば。
4 :
名無しさん@お腹いっぱい。 :2001/08/10(金) 23:46
別ディレクトリに必要な分だけ cp して、そこで import する。 別のディレクトリで checkout して cp -r . /etc するか、cvs checkout -d /etc で /etc に 直接 checkout。 ただ、root で cvs 使うと文句言われないか? それで 挫折した経験があるんだが。/etc なら rcs の方が いいかもね。
5 :
名無しさん@お腹いっぱい。 :2001/08/10(金) 23:54
CVSで直前の版(n 代前の版)とのdiffを取る方法ってある?
>>5 cvs diff -r {リビジョン}
でどう?。
7 :
名無しさん@お腹いっぱい。 :2001/08/10(金) 23:59
リビジョンを明示的に指定しないで「1世代前」みたいにしたいんですが。
> ただ、root で cvs 使うと文句言われないか? それで > 挫折した経験があるんだが。/etc なら rcs の方が > いいかもね。 やっぱりそうかなあ。/etcはまじめにバックアップとって、 RCSかね。複数人で管理してるからCVSの方が楽かと 思ったんだけど。
>>8 ん? 4が書いてるように別ディレクトリでcoしてコピれば
良いだけでないの?
10 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 01:35
ln -s /home/boke/RCS/etc /etc/RCS uheheheh
11 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 01:53
master.passwdあたりが心配。
12 :
2 :2001/08/11(土) 01:59
ホストは2台とも同じ管理者なんでパスワードの問題とかは
同じような危険度なんだな。
しかし、
>>9 よくよく考えてみると、
/etcにはバイナリとかシンボリックリンクとかいろなものがあるんで、
CVSで一気にってのは安全ではなさそうだ。
13 :
gt;gt;7 :2001/08/11(土) 13:43
必ず一世代前となら、option 無しで、 cvs diff foo.c で良いのでは??
14 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 13:47
>>7 あと、Emacian を使っていたら、pcl-cvs で
= d
で ediff できて簡単ですよ。
15 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 13:51
皆さん、CVS Repositor のバックアップってどうしてますか?
16 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 13:57
>>15 tar+gzip で固めてどっかに置いておく。以上。
17 :
名無しさん@お腹いっぱい。 :2001/08/11(土) 20:19
18 :
名無しさん@お腹いっぱい。 :2001/08/13(月) 17:28
面白そうなスレage
19 :
名無しさん@お腹いっぱい。 :2001/08/14(火) 00:33
main truncに importするほうほうってない? 主な開発は VSSでやってるんで、それを引っ張ってきて CVSに突っ込んで枝を作っていじろうと思ってるんだけど。
20 :
名無しさん@お腹いっぱい。 :2001/08/14(火) 10:17
pcl-cvs使ってるんですが、 d eとかで編集(マージ)するとき、 日本語の問題はうまくいってますか? どうも、JISのファイルとEUCのファイルを比較しているようでせっかくの ediffがうまく動いてないんです。
>>20 根本的な解決ではないですがうちでは、C-x RET c して文字コードを指定してから d e
するようにしてます。
22 :
名無しさん@お腹いっぱい。 :2001/08/14(火) 23:47
>>21 む、やはり困っている人がいましたか。
参考にさせてもらいます。
23 :
名無しさん@お腹いっぱい。 :2001/08/15(水) 05:11
ファイル名に日本語使うとまずいですか?
24 :
:2001/08/15(水) 06:39
>>19 VSS-to-RCSコンバーターってあるの?
うちは、最初から諦めて、全部現在の版をCVSにぶち込みました。
んで、VSSは参照用として、バックアップとって、書き込めないように
して残してあります。
25 :
名無しさん@お腹いっぱい。 :01/08/26 12:46
CVSは便利
26 :
名無しさん@お腹いっぱい。 :01/08/26 13:20
いや VSSで最新のソース取得してから、ちまちまと importする。
これの繰り返しです
>>19 mainの開発陣は VSSつかってて、うちらは一寸 hackしてるだけなんでねえ..
# でも何で VSS使うの...
28 :
名無しさん@XEmacs :01/08/28 14:48 ID:2OCyfEBQ
CVS でプログラムソースを管理してるんですが、キーワード置換を用いて、 各ソースプログラムの ident を埋め込もうと思っています。 ソースファイルの先頭に置くつもりなんですが、同じ書式で書こうとすると 変数名が衝突しますよね。 マクロなどを使用して上手いこと衝突しない様に書く方法って無いですか? 皆さん、どんな感じで書いてます??
29 :
名無しさん@お腹いっぱい。 :01/08/28 14:55 ID:kWMpTnew
>>28 >キーワード置換を用いて、 各ソースプログラムの ident を埋め込もう
?
オブジェクトの中にもリテラルでID埋め込もうとしてるの?
30 :
名無しさん@XEmacs :01/08/28 15:16 ID:ign9iVXY
>>29 そうです。
static char *this_src_ident =
"@(#) $Id: foo.c,v 1.13 2001/08/28 02:01:18 bar Exp $";
なんてしてるんですが、これだと変数名が衝突しますよね。
上手く衝突を逃れられれば、
$ what foo
foo:
$Id: foo.c,v 1.13 2001/08/28 02:01:18 bar Exp $
$ strings foo.o | grep '$Id'
@(#) $Id: foo.c,v 1.13 2001/08/28 02:01:18 bar Exp $
とかして確認できるってのを意図してます。
31 :
名無しさん@お腹いっぱい。 :01/08/28 15:25 ID:o186web.
んー、this_src_ident の代わりに foo_c みたいにファイル名、直しか 思い浮かばん。違うディレクトリに同じファイル名があるとき面倒だが。
32 :
原住民 :01/08/28 15:26 ID:RUhCQUmc
staticなら衝突しないんじゃないの? っていうか、literarlとして object内には埋め込まれるので stringsとかは使えるんじゃ。 つか identコマンドつかえや!!
33 :
31 :01/08/28 15:38 ID:kWMpTnew
#include <stdio.h> static char const rcsid[] = "$Id: f.c,v 1.5 1999/08/27 23:36:42 peter Exp $"; int main() { return printf("%s\n", rcsid) == EOF; } C 言語プログラムで上記のような文字列 rcsid が定義され、か つ使われていないとき、 lint(1) が警告を出したり、 C コンパ イラによっては最適化により文字列を削除する場合があります。 もっとも、よい解決策は上のプログラム例のように文字列 rcsid を使うことです。 なんでこれが「もっとも、よい解決策」なのか、サパーリ判らん。(;´Д‘) と、思ったが、無理矢理 printf() でも良いから使えって事なのね。 解決しとらーん!
34 :
名無しさん@XEmacs :01/08/28 17:19 ID:ign9iVXY
>>32 何をトチ狂ってるんでしょうね。ホント。
すみません。
static なら衝突なんかしませんよねぇ。逝ってきます...
> つか identコマンドつかえや!!
ident コマンドが無いんですよ。
RCS が無いからなんでしょうかね。
CVS を make install しただけじゃダメなんでしょうか。
35 :
名無しさん@お腹いっぱい。 :01/08/28 17:23 ID:IyiIr/CU
RCSなかったらCVSも動かんだろ。GNUからもらってこい。
dotfileをcvsで管理すると便利だよね。 新しいマシン使うときも一発
37 :
名無しさん@XEmacs :01/08/28 18:04 ID:ign9iVXY
>>35 CVS は動いてるんですな。これが。
sccs はあるけど、RCS は無いみたいです。
でも、$Id$ はちゃんと展開されてる。
CVS の配布には RCS の一部だけが含まれてるんでしょうかね。
二重現実逃避モード。
>>37 含まれています。cvs/src/rcs.c だとか cvs/src/diff.c
なんてものがある。
39 :
原住民 :01/08/31 01:14 ID:s.FxukAw
CVSで vendar branchを使ってるとき、なくなったファイルの扱い変じゃない?? つまり、とある versionから hage.cがなくなってて cvs import hoge vendar rel1_1 とかすると、hage.cには rel1_1 tagはつかないけど。 どっかで cvs co -r vendar hoge すると hage.cも生まれてくる。 要らないのが生まれてきて邪魔なんですけど、これって仕様?? それとも俺の使い方が間違ってる?
vendor の綴りを間違えてるくらいだし。 man 見といたら?
41 :
名無しさん@お腹いっぱい。 :01/08/31 02:40 ID:5Mv8F2qA
CVS ってサーバにある方のファイルの revision 下げることってできますか? 別に前の revision 落としてきて、それを commit しなおせばいいじゃんとか思ってた んですけど、最近会社で JBuilder + CVS で開発してて周りの人が 「revision 下げられないんじゃバージョン管理してる意味ないじゃん」って言うんで す。 あと、「ファイルのロックができないのも困りものよねぇ」とかも言われます。 CVS はファイルのロックをしないからこそいいのだと思ってたんですが。 俺が間違ってるんでしょうか?
42 :
名無しさん@お腹いっぱい。 :01/08/31 02:57 ID:GicJp6nc
>>35 いつの時代の話だ。今はもうRCS5.7相当の機能がCVSに取り込まれてるよ。
>>41 CVSではback outしてもRevisionは上がるのが普通。
43 :
42 :01/08/31 02:59 ID:GicJp6nc
>>41 > 「revision 下げられないんじゃバージョン管理してる意味ないじゃん」って
なんのことかよくわかりません。
古いバージョンをメンテナンスするときにブランチ切ってない
とかいう話じゃないよね?
>>44 > 古いバージョンをメンテナンスするときにブランチ切ってない
いえ、そういう事じゃなくって、
誰かが間違って、ゴミだけを付けたファイル(C-p で上に行こうとして p を入れちゃっ
たとか)を commit したときに、 rivision 上げて対処するんじゃ何かバージョン管
理って感じがしないなぁって事みたいです。
言われてみれば確かにそうかもという感じがしたので。
>>45 そのゴミだと思っていたものが実は重要だったとして
間違って消してしまったらそれこそバージョン管理の意味がない。
だからどんな修正だろうと積み上げになっていったほうが安全。
47 :
44 :01/08/31 10:54 ID:.P4YZmic
>>46 おれもそう思う。ひょっとして
>>41 の同僚は release version の管理と
revision の管理を混同してないか?
48 :
名無しさん@お腹いっぱい。 :01/08/31 12:35 ID:SYzSjnws
>>46 ,47
varison 管理と rivision 管理を分けて考えれば、
> 間違って消してしまったらそれこそバージョン管理の意味がない。
というのは確かに正しいですね。なるほど。
CVS における、version の管理というのは
TAG 付けで行なうのがいいんでしょうか。
49 :
名無しさん@お腹いっぱい。 :01/08/31 14:22 ID:H9.KahBw
ディレクトリ毎にも tag管理出来る所が rcsに比べて良いよね。 後は、マージしてくれるとこも。
50 :
原住民 :01/08/31 16:44 ID:s.FxukAw
>>40 って言うかmanみてもわからなかったぞ。
後生だから教えてくれ。
51 :
名無しさん@お腹いっぱい。 :01/08/31 17:04 ID:FzOr630E
日本語を書く時、ファイルの中身はどんな encoding でも問題ないですが、 log をいったん EUC なんかにしてしまうと JIS にはそう簡単に直せないですよね。 この問題をみなさんどうしてます? 最近僕は嫌気がさして英語でしか log をつけ ないようになってるんですが。
52 :
名無しさん@XEmacs :01/08/31 18:35 ID:BRFmNDuc
>>14 > あと、Emacian を使っていたら、pcl-cvs で
ふつーは、Emacsen といいますです。
>>51 file の中身も文字コードが変わると悲惨なことになりますが…。
cvs diff なんぞとろうとすると、目も当てられなくなる。
54 :
名無しさん@お腹いっぱい。 :01/08/31 19:44 ID:H9.KahBw
>原住民 ウチでは、checkout に vendortag は付けれないです。 "cannot find module vendortag" と出た。 ウチで vendor のソースを import する時は、 releasetag に 3rdparty_20010831 みたいに prefix を 付けちゃうんで、引っ張り出す時に困る事はないです。
55 :
35 :01/08/31 21:09 ID:hc4CeL/k
>>42 >
>>35 > いつの時代の話だ。今はもうRCS5.7相当の機能がCVSに取り込まれてるよ。
ここんとこずっとFreeBSDだから気にしてなかった。
Solaris 2.6に手でCVS入れたころの話だから...
うーん、こういうふうにして歳がばれるんだな。
56 :
原住民 :01/09/01 17:21 ID:MjyGu27w
>>54 ええ、できない? 俺、いつもやってるけどなあ。
release tagで取り出せばいいっちゃいいんだけど。stickyにならないっけ?
まあなってもかまわないか。
後は updateして vendor branchについていいけるか、ってのが心配。
working directoryにちょこっと変えてたりするので。
最悪明示的に update -j 使えばいいってのはわかるけど、
command lineが長くなってうざい。
57 :
:01/09/02 01:26 ID:KYUxK1l2
CVSはロックしないからいいんだというのは合ってる(だろう)けど、
CVSでもロックしようと思えばできるぞ。
担当ならもちっと勉強だな
>>41
58 :
名無しさん@お腹いっぱい。 :01/09/02 03:43 ID:Nr33AwC2
>>41 JbuilderのCVSはおまけです。
ちゃんとバージョン管理したいならWinCVSを使いましょう。
59 :
名無しさん@お腹いっぱい。 :01/09/07 17:42
文系でも cvs もえ。というか文系だからこそ cvs もえもえ。 どんなヘボ文章でも編集過程残します。将来大作家にでもなって死後 cvs repository がみつかって大騒ぎとか。
60 :
名無しさん@お腹いっぱい。 :01/09/07 23:13
CVS?はあ? CSVの間違いだろ。 Excelのデータをやりとりするのに使うファイルだ。 単なるテキストファイルだからUNIXでも読めるだろう。 CSVでファイル管理するのかね〜
>>60 ネタだとイマイチ。
天然ならちょっと尊敬。
ネタだろうけど面白くない。 どうせならイタイ発言スレにコピーされるぐらい真実味 のあるのが欲しい。 あのスレのはほとんど天然物だけど。
63 :
名無しさん@お腹いっぱい。 :01/09/08 00:23
俺は手作業でrsync。 あぁ知恵遅れか…イッテコヨウ
64 :
名無しさん@お腹いっぱい。 :01/09/13 11:27
rename database ってどうなっているんですか? そうとう昔から案が出てるようだから、 そろそろ実装してくれないかなーと思っているんだけど。 #これがあれば cvs がますます気楽に使えるようになるのに。 #今は file を import するのに名前について相当気を使う。
65 :
名無しさん@お腹いっぱい。 :01/10/09 00:52
CVSであるモジュールにあったファイル名を 全部表示(削除したファイルも含めて)することってできないでしょうか? あと、あるリビジョンのファイル名一覧を得ることはできないでしょうか? 随分古いスレをあげてしまってすいません。
>>65 >全部表示(削除したファイルも含めて)することってできないでしょうか?
workspaceでcvs log -Rじゃだめ?
>あと、あるリビジョンのファイル名一覧を得ることはできないでしょうか?
一覧だけ得るのはどうやるんだろう。
cvs co -r1.2.3.4 とか、workspaceでcvs update -r1.2.3.4 とか
すれば、特定のリビジョンのファイルだけにはなるけど。
67 :
名無しさん@XEmacs :01/10/09 05:54
「リビジョン管理は CVS ……」 「?」 「ファイル形式は… C … CSV… ちょっと時々ごっちゃになるねん CVS? CSV? CVS?」 「はあ…」 「わかってるねん わかってるねんで? バカにしたらあかん このスレは CSV … それがごっちゃに…」 「このスレは CVSです」 「わかってるねんで!?」
最近、/etc以下などの設定ファイルの管理にCVSを使い始めた。いや、 master.passwdとかはrepositoryには入れてないけど。どうせpasswd使え ば中身変わっちゃうし……。 しかし、これはなかなか快適かも。ログはしっかり残るし、インストール時の デフォルトや過去の任意の時点との比較も簡単。
>>68 BSD Magazine の影響ですか?(ニコッ
70 :
名無しさん@XEmacs :01/10/09 07:09
>68 昔 RCS で /etc の下とか管理してたりしたけど、 面倒で止めたダメ人間。 Linux 使ってると何年かに一回、全体の入れ替えやっちゃうから、 なんか意味ないような気がして。
71 :
名無しさん@XEmacs :01/10/09 07:30
データとプログラムが密接に関係するプロジェクトの場合、 データの扱いはどうしてますか? # 自分は残念ながら、データは手動管理…
72 :
名無しさん@お腹いっぱい。 :01/10/09 10:50
>>70 aliases の管理とかであれば rcs でもいいんだが
ある設定変更のために複数のファイルに変更が
及ぶ場合(例えば /etc/rc.conf で NIC 追加後, hosts 編集とか)に
cvs だと格段に便利だよな.
そしてそのタイミングでわかりやすいようにタグを打っていく. 完璧.
>>66 > >全部表示(削除したファイルも含めて)することってできないでしょうか?
> workspaceでcvs log -Rじゃだめ?
できました。ありがとうございます。
cvs log でファイル名を指定しないと消したファイルも見る事ができるんですね。
> >あと、あるリビジョンのファイル名一覧を得ることはできないでしょうか?
> 一覧だけ得るのはどうやるんだろう。
リビジョンではなくてタグでした。でもタグでも変わらないですよね。
viewcvs だと、あるタグが打ってあるファイルの一覧が表示できるので、普通の CVS
のコマンドでもできるのかなぁと思っていたんですが。
> cvs co -r1.2.3.4 とか、workspaceでcvs update -r1.2.3.4 とか
> すれば、特定のリビジョンのファイルだけにはなるけど。
そうなんですよね。ファイルを取ってこないと確認できない。
cvs ls みたいなコマンドがあると結構便利かもしれないですね。
74 :
名無しさん@お腹いっぱい。 :01/10/09 14:22
75 :
名無しさん@お腹いっぱい。 :01/10/09 15:31
repositoryにいって
find module -name '*,v' | grep -l tag-you-want | sed 's,Attic/,,'
とか...
>>73
76 :
名無しさん@お腹いっぱい。 :01/10/09 16:30
>>64 でいってるようなリネームしてもディレクトリごと管理できる
revision 管理ソフトって存在してるんですか.
cvs の rename database は頓挫? してるようだし.
>>75 それは、Repository がある host に login できなきゃいけないですよね。
それとも、何か方法があるんでしょうか。
ついでにもう一つ質問なんですが、
Emacs の pcl-cvs で変更がないファイルも一覧に出す方法はないでしょうか?
一応 C-x v d で vc-dired-mode に入って、 C-x v t で vc-dired-terse-mode を ON にした後に
cvs-examine をやると出てくるみたいなんですが、もっと簡単にやれるとうれしいです。
# Emacs スレで聞いた方がいいのかな。
78 :
名無しさん@お腹いっぱい。 :01/10/09 21:31
>>65 ないしょで Apacheとcvsweb をインストールしちゃう、とか :)
マジレスすると、こうかなあ。 $ cvs -d $CVSROOT co -p -rREV MODULES 2>&1 >/dev/null | \ sed -n 's/^Checking out \(.*\)$/\1/p' メチャメチャ遅いけど。
80 :
名無しさん@お腹いっぱい。 :01/10/09 21:43
>>77 いや、loginできなくても NFS mountぐらいできれば okよ。
と屁理屈を言ってみる。
俺も cvswebの hackとかしてるんだけど、working directoryがないと
できない操作が多くてつらいね。
logぐらい何とかさせろ。
82 :
名無しさん@お腹いっぱい。 :01/10/30 14:57
cvsweb の詳細な日本語解説サイトってありませんかね?
83 :
名無しさん@お腹いっぱい :01/10/30 19:30
昔のCVSではバイナリの差分が取れなくて使うのを断念したんですが今はどうなんでしょうか? 動画、mp3、画像等をCVSで管理したいんですけど。
84 :
名無しさん@Emacs :01/10/30 19:33
>>83 圧縮されてるファイルばかりだな。W
そんなのの差分とっても嬉しいことは皆無だと思われ。
85 :
名無しさん@お腹いっぱい。 :01/10/30 19:34
>>84 差分をとる というよりは差分があるかどうか だけ知りたいのでは?
86 :
名無しさん@お腹いっぱい。 :01/10/31 00:22
>>83 実験してみれ。
$ mkdir foo
$ cd foo
$ cvs -d $PWD/cvs init
$ mkdir cvs/bar
$ cvs -d $PWD/cvs co bar
$ cd bar
$ dd if=/dev/urandom of=a.bin count=1
$ cvs add -kb a.bin
$ cvs com -m ''
$ dd if=/dev/urandom of=a.bin count=1
$ cvs com -m ''
$ cvs di -r1.1 -r1.2 a.bin
$ od -x1 ../cvs/foo/a.bin,v | less
87 :
名無しさん@お腹いっぱい。 :01/11/01 14:17
過去にいったんremoveで削除したファイルと同じファイル名のソースを 新規にADDしたい場合どうすればいいでしょうか? 単純にADDしてcommitすると下記のように怒られてしまうんですが、、、 cvs server: cannot add file `fukkatu.c' when RCS file `/u02/cvsroot/HOGE/fukkatu.c,v' already exists cvs [server aborted]: correct above errors first!
88 :
名無しさん@お腹いっぱい。 :01/11/01 16:04
昔のを復活させて新たなバージョンとして commit すればいいんじゃないの? 一般的な方法かはわからないけど.
89 :
名無しさん@お腹いっぱい。 :01/11/01 19:36
>>88 すみませんが復活の方法を具体的に教えてもらえませんか
Atticから手でmvすればいいんでしょうか?
dead状態のファイルはどうすればいいんでしょう?
#マニュアルみても分からなかった、、、
>>87 ほんとに cvs remove しました? Attic 落ちしているファイルの場合、同名のファイルを cvs add すると
% cvs add f
cvs.exe add: re-adding file f (in place of dead revision 1.2)
cvs.exe add: use 'cvs.exe commit' to add this file permanently
という感じで追加できますけど。
>>90 ども、いま問題になってるファイルはdead状態のファイルです。
Attic状態のはふと気になってついでにきいてみました。
92 :
名無しさん@お腹いっぱい。 :01/11/02 06:00
dead でも復活できます. 復活というか, 新たなバージョンとして 復活させる. やりかたは, どっかのマニュアルにある(藁
93 :
名無しさん@お腹いっぱい。 :01/11/02 14:23
94 :
名無しさん@お腹いっぱい。 :01/11/03 01:42
>>93 cvs removeのrevisionからその一つ前のrevisionへのmergeを実行する。
たとえば 1.68 がdead なら 1.68 から 1.67へのmergeをしてやれば復活。
mergeのやり方はわかるよね。
>>94 どうもです。
deadなりビジョンもmerge対象として使えるという発想がありませんでした
ありがとう後妻ます。
お前らホームディレクトリのドットファイル等の管理はどうしてますか?
97 :
名無しさん@お腹いっぱい。 :01/11/22 23:07
98 :
名無しさん@Emacs :01/11/22 23:43
>96 ~/dotfiles 作って主要なものはそこに置いてCVS。 それをln -s してる。 .fetchmailrcとかはそれじゃ使えないけど。
99 :
名無しさん@お腹いっぱい。 :01/11/23 01:21
僕は cvs でやるほどの量ではないから RCS だな. ~/RCS を時々 backup してやれば十分だと思う.
dotfilesってバージョン管理したいほどのものってある? をれは.profileとか.shinitだとほとんど追加しかしないけど。 コメント書くだけでじゅうぶん。
>>100 .emacs はバージョン管理したくなるな、さすがに。
102 :
名無しさん@お腹いっぱい。 :01/12/06 02:32
cvswebが便利そうで、一応導入してみたんだけど、 リポジトリの中にあるファイルの中に、チェックアウト出来ないファイル があるみたいで、 cvs checkout: cannot exec co: No such file or directory cvs checkout: could not check out xxx/yyy/Zzz.java ってエラーが出ちゃうのね。 あるいくつかの特定のファイルがそうなるんだけど、 これらのチェックアウト出来ないファイルの共通点が見つけられなくて 困ってます。 誰か同じ様な症状になったことがある人いない?
実はこの投稿はマルチポストだったのですが、 とある方からの指摘を受け、cvsのバージョンを新しいものにして、 解決しました。 失礼しました。
104 :
名無しさん@お腹いっぱい。 :01/12/23 14:34
掘り出してすまそ。 現行のCVS てなにげにバイナリファイルのバージョン管理ってできるの? 具体的には、表計算ソフトファイルを食わせてみたいのだが。
-kbでバイナリファイルも突っ込めるよ。 バイナリの場合は差分を作らないので、disk容量が気にならないならどうぞ。
106 :
名無しさん@お腹いっぱい。 :01/12/23 17:29
xdelta対応版ないんかのう
>>105 ありがとう。
ががーーん。そうなのか。 たまにUPするしかないか..
>>104 ファイル名はなんとかしないと駄目だけど、
base64でaddするとか。
base64だったら$とか使われてないはず。
変更量が多くてチョコチョコ変更するんだったらこっちの方がいいかも。
エンコード->commit、update->デコード、はaliasに登録すれば楽かも。
109 :
名無しさん@お腹いっぱい。 :01/12/26 21:39
diff は行単位だから, base64 でやっても結局まるごと 入るのと変らないんじゃない?
>>106 がいうように xdelta をつかってくれるとウレスイんだけどね。
subversion の binary 扱いはどうなんだろう...
言っちゃったね。じゃあ、こう返すしかない。 「自分で実装して公開してちょ」
112 :
名無しさん@お腹いっぱい。 :02/01/04 22:02
操作ミスでcvs add CVS とかやっちゃったみたいで、 それからcvs updateするたびに cvs update: warning: directory CVS specified in argument cvs update: but CVS uses CVS for its own purposes; skipping CVS directory ってなメッセージが出るようになっちゃったんですが、 これどうしたら消えますか?
113 :
名無しさん@お腹いっぱい。 :02/01/04 23:15
commit してないんだったら そのディレクトリの CVS の中身がおかしくなってるんじゃないの? 別のところに同じ module を checkout して比較してみたら.
114 :
名無しさん@お腹いっぱい。 :02/01/05 00:26
>105 拡張子で、自動的にバイナリとアスキーを認識させる方法とかないですか?
>>112 cvs add だとその操作はできないと思うけど。
./CVS/Entries に、
D/CVS////
というような行があればそれを削除してみる、とか。
>>116 ども。それで直りました。なにしたんだろう?
118 :
名無しさん@お腹いっぱい。 :02/01/09 23:00
資料あげ
119 :
名無しさん@お腹いっぱい。 :02/02/01 10:01
subversion使ってる人いますか。使用感教えてくださいませ。 ってこのスレでいいのかな...(汗
120 :
名無しさん@お腹いっぱい。 :02/02/01 11:02
>>116 cvs add CVS したんでしょう。
でもこれ、cvs が弾いてくれればいいのにね。
>>120 じゃあバージョンの違いかな。うちではちゃんとはじくよ。
$ cvs --version
Concurrent Versions System (CVS) 1.11.1p1-FreeBSD (client/server)
Copyright (c) 1989-2001 Brian Berliner, david d `zoo' zuhn,
Jeff Polk, and other authors
CVS may be copied only under the terms of the GNU General Public License,
a copy of which can be found with the CVS distribution kit.
Specify the --help option for further information about CVS
$ ls CVS
Entries Repository Root
$ cvs add CVS
cvs add: cannot add special file `CVS'; skipping
あと考えられるのは cvs import -I\! したとかぐらいかなあ。
>>121 確か Solaris2.6+cvs-1.11 だったと思う。CVS/ は弾いて
くれると思うんだけど、たまーに add できちゃうときが
あるような気がするのね。気のせいかもしれないけど。
cvs add *;cvs add */*; cvs add */*/*; cvs add */*/*/*
なんてやってたら、どんどん CVS/CVS/CVS/CVS/CVS/ とか
できちゃいました。
あ、もしかして cvs add CVS/Entries とかやっちゃうと CVS/CVS/ ができるってことかな?
124 :
名無しさん@Emacs :02/02/06 01:35
ローカルタイムで管理することは出来ないのでしょうか?
125 :
名無しさん@お腹いっぱい。 :02/02/06 02:08
>>125 あ、そうなんですか。
history -zとかはtimezoneの指定とかって書いてあったんで、
出来るのかと思いました。
どうもでした。
編集途中である程度区切りがついてるんだけどリポジトリに反映する のにはまだ不十分な時ってどうしてます? SUNのteamwareではcheckinした内容は自分の作業領域にしか影響無い から好きなだけcheckinしておいて最後に親に反映してたんですけど。
128 :
名無しさん@お腹いっぱい。 :02/02/06 02:52
ガ━━━━━(; ´Д`)━━━━━━ン
131 :
名無しさん@お腹いっぱい。 :02/02/06 22:26
>>127 俺ブランチ切るのもだめなの?
$ pwd
/home/in/my/work/directory
$ cvs tag -b my_very_experimental_code
$ cvs com -m"とりあえず保存; みちゃいやン" -rmy_very_experimental_code
132 :
名無しさん@お腹いっぱい。 :02/02/07 09:16
NetBSD の repo を CVSup で貰ってきて、 そこから co してるんですが、 ブランチしていすると(たとえば cvs co -rnathanw_sa basesrc)、 assertion "strncmp (repository, CVSroot_directory, strlen (CVSroot_directory)) == 0" failed: file "/usr/src/gnu/usr.bin/cvs/cvs/../../../dist/cvs/src/lock.c", line 177, function "lock_name" cvs [checkout aborted]: received abort signal とか言われて悲スィーです。 ワタシなんかアホなことやってますか?
133 :
名無しさん@お腹いっぱい。 :02/02/09 09:03
俺ブランチつくったのが、後々まで見えるのが恥ずかしいのでは.. とかいってちゃいけない、つー気もするけど、 でもブランチつくりまくるのもいかがかと思う気もする。 commitした段階で終わった気がして、mergeをあとに伸ばしちゃいそう >> おれ ちなみに今から食べる飯はブランチでしょうか?
134 :
名無しさん@お腹いっぱい。 :02/02/09 09:12
そうそう、あの ssh経由 anonymous CVSを実現するのは どうすればいいのでしょう? anonymousアカウントつくって普通の sshを通させるのは怖いし... 大人しく pserver使えってことか? でも loginがチト面倒くさい。
>>134 cvs loginはローカルの ~/.cvspassに暗号化したパスワードを持っておく
だけだから、一度cvs loginしたら二度とcvs logoutしなければよい
だけでは?
たしかにいわれてみれば 1度だけだな。 CVS使ったことないやつらに使わせるんでちょっと教えるの面倒かな、 と思ったけどまあそのくらいいいか。 sshだと暗号化で重くなるし。ってそんな問題じゃないけど。 でも考えてみると、anoncvs.netbsd.orgみたいなで大勢が使うようなのは pserver使った方が親切? or そんなところは律速にならない?
138 :
名無しさん@お腹いっぱい。 :02/02/09 12:02
>>132 cvs -R co ... としたら直ったりして……
>>137 ?
糸をつかんでいないかも知れないけど、
sshアカウントを持っている人にしか使わせたくないなら、
pserverのポートをsshでLocal Forwardさせればいいだけでは?
140 :
CVS初心者 :02/02/18 02:47
いったんaddしたディレクトリを消すには? cvs removeってファイルしか消せないような
>>140 cvs update -Pとすると、空のディレクトリを削除してくれますよ。きっと。
142 :
CVS初心者 :02/02/18 03:01
>>141 ありがとうございます。
working側ではなくrepository側を消したいのですが、無理でしょうか?
143 :
CVS初心者 :02/02/18 03:42
cvs importの反対が無いかってことなんですが。 repositoryの中にいったん誤った名前のディレクトリを作成してしまうと、 手動で消す以外に方法は無いってことでしょうか?
144 :
名無しさん@お腹いっぱい。 :02/02/18 03:45
>>140 ディレクトリ作る。その中にファイル作る。ファイル消す。ディレクトリ消す。
とした場合、ディレクトリを消してしまったらファイルの履歴はどうする?
って話になるので、自動では消せない。
あるディレクトリ以下の履歴ごと消滅させる(そこには何も無かっ たことにする)のは不可能ってことっすね。 ありがとうございました。
>>145 CVSはディレクトリを管理することが出来ない
(= バージョン付けできない)と思いますので、
「ディレクトリ以下無かったことにしたい」というのは
仰る通り直接削除するしかないでしょう。多分。
>>144 さんが仰る問題も、ディレクトリが管理されていない
というところが原因であると考えています。
(それだけではないかも?)
>148 cd navi2ch && cvs up checkoutするのは最初の一回だけです普通。
149 :
名無しさん@お腹いっぱい。 :02/02/18 11:08
checkout hoge してできたモジュールのディレクトリ ./hoge 以下に居れば -d しなくてもかまわないようですが、 それじゃダメなんですか? あと、 zsh は .cvspass あたりから持って来て補完したりも する。
>>146 > (それだけではないかも?)
Attic を手で消さねばって話?
>>151 あ、いや、
>>146 は本当に単にディレクトリのバージョン付けに
ついて書いただけです。たしか。
> Attic を手で消さねばって話?
これの具体的な話を聞かせてもらえると嬉しいです。
153 :
名無しさん@お腹いっぱい。 :02/02/24 22:12
プロジェクト名の整理をしたくなりました。 プロジェクト名 hoge を foo/hoge にしたいのですが、 リポジトリ内のディレクトリ構造を変えるだけで大丈夫でしょうか。 やってみた限りでは大丈夫な気がするのですが、問題があったりしますか?
先輩にUNIX起動時にsetenvコマンドでCVS自動で使えるようにしとけ と言われたけど、.cshrc内のどこに、どういうふうに設定すれば いいのでしょうか? setenv CVSROOT xxxxx/xxx/xxx setenv export CVSROOT です。お願いします。
>>154 それ以前にshとcshの文法がごっちゃだ。
# setenv exportってなんだ(w
>>152 > > Attic を手で消さねばって話?
>
> これの具体的な話を聞かせてもらえると嬉しいです。
cvs remove したら Attic にいくだろう。
先輩が知らないから、僕に頼んだのです。 調べてやってくれという事で。 先輩は.cshrcも知りませんでした。 僕は、.cshrcにパスを貼ったことしかないです。 みんな起動後にそのコマンド打ってます。 もしかして板違いですか?
板違いとまではいかないけど、どちらかといえば 「くだらない質問」スレとか「UNIX超初心者」スレ 向きではあるな。
cshだったらシステムデフォルトである/etc/csh.loginとかに書いとけば?
>160 サンキュー。どういう会社なんだ内の会社は。。 今、土日に頂いた仕事が終わったところです。 2時間寝て会社出勤します。
/etc/csh.loginがわかったところで何も解決してないような。
>>162 >先輩にUNIX起動時にsetenvコマンドでCVS自動で使えるようにしとけ
というのが「各ユーザが~/.cshrcでCVSROOT設定しなくてもcvs使える
ようにしとけ」だったら、まぁ一応目的は達成できるかと。
# もちろん(t)csh使ってなかったら駄目じゃん、という話はあるけど
164 :
名無しさん@お腹いっぱい。 :02/02/25 11:03
先輩を解雇しろ
165 :
名無しさん@お腹いっぱい。 :02/02/25 20:46
>>163 cvs -d $CVSROOTと
./CVS/Rootと
環境変数のCVSROOTって、
優先順位はどうなってましたっけ? 単一のCVSROOTでいいなら問題ないけど、
自分のマシンとか外部のpserverのrepoからcheckoutしていたりすると、
下手にCVSROOTを設定したら痛いことになりませんか?
はっきり覚えていなくて気持ち悪いんですけど、一年前にそれで失敗してから
CVSROOTを設定しなくなったという記憶があるんです……
環境変数は一番優先度が低い。 今のとこ設定しててハマったことないけどなあ。 まあでも一度 co すれば CVS/Root に書かれるわけで、 設定しなくても困らないかもね。
今会社から帰りました。 今日は、障害だらけで、setenv登録する暇なかったけど、 ホームディレクトリの.login と.cshrcを両方見たけど、 どっちかにそのまま書き込めば良いような気がしました。 でもみんなが言ってる事ほとんどわかりません。 一応2年やってるんですけど、今までドキュメント作成ばっかりだったので。。
168 :
名無しさん@お腹いっぱい。 :02/02/26 04:02
>>167 .login と .cshrc の関係については man csh
優先順位ってcvs -d、CVS/Root、環境変数のCVSROOTって順番であってるはず。 だからanonymousでcheckoutしてCVS/Rootはanonymousにしておいて、 commitするときだけ-dを指定してcommitミス防止っていうのを 聞いたことがある。
170 :
名無しさん@お腹いっぱい。 :02/03/11 14:02
どなたか cvsnt (www.cvsnt.org) を使っていませんか. CVS の勉強にと,ここから CVSNT 1.11.1.3 をとってきて [typical] で インストールしてみたのですがリポジトリの作成でエラーが出てしまいます. 具体的には windows2000PRO(SP2) で 1.インストールしたフォルダにパスを通す. 2.システム環境変数の TEMP と TMP が同じフォルダであることを確認. 3.環境変数 CVSROOT を :local:c:\cvsroot に設定. 4.cvs init を実行. → cvs [init aborted]: CVSROOT c:\cvsroot must be an absolute pathname ...完全なパスネーム? ちなみに cvs -d :local:c:\cvsroot init としても,CVSROOT を :local:c:/cvsroot に変えても同じメッセージが出てきました. 何か分かる方いらっしゃったらお願いします.
>>169 高橋さんの日記?
いまいちよく理解できんかったんだけど、commit ミスっていうか
うっかりミスを repository に反映させてしまう危険を減らすって事
でいいかな?
別にうっかりミスをリポジトリに入れてしまっても 直してコミットしなおせばいいだけのような気もするが… まぁ気持ちは悪いかもしれないけど
commit なら前の revision に戻せばいいけど、 tag を動かしちゃったら簡単には戻せないでしょ。
>>170 ほう。そんなものがあったんだ。知らなかった。
WinCVSじゃだめなの?これなら使えてるけど・・・
>>170 手元で cvsnt 1.11.1p1 を使ってるけど、問題なく使えてる。
% cvs -d :local:h:/tmp/cvsroot init
>>175 どうやら cygwin の cvs が干渉 (?) していたようで
%cvs -d :local:/cygdrive/c/cvsroot init
とすれば,一応エラー無しで終了しました.
>>174 CVS サーバがほしかったもんで,検索して見つけた cvsnt を
使ってみようと思ったんですが,wincvs はクライアント側の
機能だけですよね.
>>176 backslashを二つ重ねても同じですか(C:\\path\\to\\repo)?
>>176 の方法でやったって意味無いような,cygwin の CVS 使ってる訳だし,
ってことで,cgywin のパスより前に cvsnt のパスを記述して,
%cvs -d :local:c:\cvsroot init
としました.
ちなみに,backslash を重ねても改善されなかったです.
179 :
名無しさん@お腹いっぱい。 :02/03/15 21:39
ねえねえ、ここってsubversion関連の話題を振ってもいいのかなあ。 新スレッドを作ってもあまり伸びないような気がするし。 マ板やム板にもなかった。
Linux板にはあったな、もう誰も書きこんでないが。
こんど仕事で rcs を使うことになったのでこのスレ読んでお勉強しようかな。 ;; あ、cvs のスレだった。 個人的には cvs の方を覚えたいんだけど。ま、せっかくだから両方覚えよる ことにしよう。これを機会に .emacs なんかを cvs で管理してみよう。
彼女を CVS で管理スレより下がってるから age
複数人のプロジェクトで使うのに CVS より RCS を使うメリットってあります か?普通 CVS 使いますよね。
184 :
名無しさん@Meadow :02/03/19 14:27
間違えて sage てしまったので age (w
そもそもRCSだと「a.cの1.2とb.cの1.5でバージョン1」「バージョン1の ファイル全部checkout」みたいな事がやりにくいから、ソース1本位の 小さいプロジェクト位でしか使いたくないな。 そういえばprcsなんてのもあるね。ちょっと触ってみた感じだと rcs < prcs < cvs って感じだった。
そうですよね。CVS だと複数ファイル管理するのも簡単ですよね。 なんでうちの会社 RCS 使うとか言いだすんだろ。ていうか何で俺でさえ知っ てることを誰も知らないんだ。ヘボ会社だなぁ。転職しよ。
何度もごめんなさい。 RCS なんかクソだ。CVS の方がこんなに便利だ。なんてことが書いてあるペー ジなんてないですよね。自分で書くしかないか。
>>185 ファイル間の依存関係が低い場合、たとえば /etc 以下の設定ファイルなんか
だと RCS でも良いけど。(ファイルのロックが入るのも、むしろ都合良いし)
>>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依存部分には気を付けないとダメだが。
>>189 あ、そこは見ました。もうちょっと具体的なのを探してたんですが。思ったよ
うなのはなさそうです。わざわざありがとうございました。
>>98 さんみたいに別ディレクトリ作るんじゃなくて、ホームディレクトリに
ある dotfiles を CVS で管理することってできます? 別のファイルを置いた
ら変なものまで CVS に登録されて問題あるかな、やっぱり。
>>191 それはホームディレクトリ自体をCVSで管理すれば出来ると思いますよ。
importせずにファイル一つずつaddしていけば、余分なファイルを
加えることもないでしょうし。
>>187 単体のファイルなら、RCS の方が適当に気軽に
バージョン管理できるのでいい面もある。
RCS がクソということはないでしょ。
194 :
名無しさん@お腹いっぱい。 :02/03/28 03:27
WinCVS を使いたいんですが、日本語の 詳細な解説ってどっかにありますか?
ググれ。腐るほどある。
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タグを使うのがいいのかなあ。
>>196 (;´д`).。oO( 和訳ヘルプが腐っている… )
199 :
名無しさん@お腹いっぱい。 :02/04/05 04:46
p2p版のcvsなんてあるのかな? ないなら、jxtaフレームワーク上のアプリとして 作ったら面白そうかなぁ。 最近シェアードソースなんて変なものが大量に 出回るようになったから(ないよりはあるほうがいいけど(^^;) こういうので極秘にソースを改変できるようになるとおもしろいかなーなんて。 どうでしょう?
200 :
名無しさん@お腹いっぱい。 :02/04/12 10:50
一部の設定ファイルなんかに cvs 使ってますが、 プロジェクトでの利用面からもしっかり知りたいと思ってます。 いろいろ web も見てるのですが、やっぱ本も欲しい。 ってなわけで、お勧めの書籍教えてください。
秀和システム 入門CVSかな。 一人で使うのを、複数人で使う説明もあった。
おいおい! 素直にでびあんぐるにしとけって。
>>202 navi2ch使ってるのに珍しい間違いだな。
204 :
名無しさん@お腹いっぱい。 :02/04/12 12:16
でびあんぐるのやつなら、 一部がWebで公開されてなかったっけ? CVSの使い方のとこだけで、CVSの運用のところはぬけてるやつ。
>>199 シェアードソースって何?
今はどうやって流通してんの?
あとCVSだと単一のレポジトリに書きにいくからcommitの整合性は保たれるけど、
p2pだとどう?
208 :
名無しさん@お腹いっぱい。 :02/04/21 15:17
日本語のテキストファイルを管理したいのですが、 checkin などのときにつけるコメントは、テキストファイルと同じ漢字コードのほうがいいのでしょうか? もしそうだとすると、 あるプロジェクトではShift JISのファイルを管理する必要があり、 別のプロジェクトではEUCのファイルを管理する必要があるとすると、 この二つのプロジェクトでコメントの漢字コードが違ってきますが、これは問題ないでしょうか?
>>208 ヲレは、前の会社のスクリプト(IIS; SJIS)を管理するのにCVSを使っていて、
コメントはEUCで書いてた。
ただし、,vファイルが壊れたときにエディタで直す場合は、自動コード変換する
ようなエディタを使うとアウトなので、そういう場合に書き戻す時はじゅうぶん
気をつけること。
オープンソースなプロジェクトで contirb されたパッチをあてたとき Changelog に書く名前とアドレスって パッチを送ってきた人のを書くもん? それとも commit した人のを書くもん? おれは後者がいいと思うんだけど、 「パッチといっしょに Changelog も送れ」って とこもあるみたいで。
>>211 俺は前者が好き。Changelog の英語考えるのメンドいもん(^^;;
後者だとしても、ダレソレの patch だと Changelog に書くんだよね?
じゃないと、後で振り返るときに困る。
>>212 > 俺は前者が好き。Changelog の英語考えるのメンドいもん(^^;;
そ、それだけの理由っすか!?
いーじゃん、てきとーで。
パッチを書いたのが誰だろうと
最終的に source tree に統合することを決めるのは committer だから、
commit した人を書くべきだと思うんだけど。
> 後者だとしても、ダレソレの patch だと Changelog に書くんだよね?
もちろん。
214 :
名無しさん@お腹いっぱい。 :02/04/24 15:38
ホームページを複数人で管理するのに、cvsを使おうと思ってるのですが、 現在、commitされた変更を反映させるのに毎回checkoutしています。 commitされた時点ですぐに反映させるにはどうしたらよいのでしょうか?
なんで毎回checkoutしてるんよ。普通updateだろ。 「commitされた時点ですぐ反映」って? commitされたら他人の作業ディレクトリをupdateしろってか? そら無茶だ。 commitlog辺り使えば、commitした時にメールでお知らせとかはできるはず だけど(俺は実際に設定した事ないけどFreeBSD Projectなんかではやってる)
>>215 > なんで毎回checkoutしてるんよ。普通updateだろ。
あ、そうなんですか。なんとなくこうしてました。
> commitlog辺り使えば、commitした時にメールでお知らせとかはできるはず
> だけど(俺は実際に設定した事ないけどFreeBSD Projectなんかではやってる)
なるほど。contribにいろいろ便利なスクリプトがあることを今発見しました。
どうもありがとうございました。
>>217 おぉ!
やはり出来るのですね。
大変参考になりました。ありがとうございました。
>>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 が
出来ている.
コマンドプロンプトで実行するとちゃんとプロンプトは返ってくるのに
何故なんだ,というところです.
むーう.
>>220 > (もちろん bash から updatescript を動かしてみると自動 update は
> 成功してるのは確認しました)
→ updatescript を動かしてみると update はうまくいきました.
> c:\cygwin\usr\bin\rsh -l USRNAME DOMAIN "cd ...; cvs update -d&"
> をコマンドプロンプトから実行してみて自動 update の成功を確認.
→ コマンドプロンプトから実行してみて update の成功を確認.
つか,長文すみません.
>>221 パスの関係でC:\WINNT\system32\rsh.exeを使ってるとか?
>>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 を使用してはいないと思うんですが.
この手のわけわからんエラーの時は、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の差分が出力されてしまいます。 あらかじめタグを付けておくしか方法はないのでしょうか。。?
>>225 rdiffで-Dだとどの枝から取るのか指定できないと思います。
rdiffじゃなくてdiffつかうとどうでしょう?
>>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
みたいな指定は出来ませんし…
>>227 > 試してみましたが、やはり-Dは幹を指してしまうようです。
あらら、ごめんなさい。
えーと、手元のFreeBSDのcontribに入ってるCVSのソースをみたところ、
-jなるオプションがあるようです。
cvs diff -jeda1:yesterday -jeda2:today -u
みたいにできそうなのですが、試してみてもらえませんか?
>>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 )
どうもありがとうございました!
なんつーか、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でとりあえずできましたが。
>>231 んなこたーないと思うけど。
うちは(FreeBSDだけど)mount /optで/opt/cvsなんてしてるし。
パーミッション関係でなんかちょんぼしてたとかじゃないのかねぇ。
ええ、パーミッションは755,775,777とか試したんですが ダメでした。/home/cvs/cvsは775で出来てます。
cygwin の cvs で ssh 経由がうまくいかないのはガイシュツですか?
>>234 少なくとも、importやinitは動いたけど?
ところで、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 がうまくわたってないようだ。
>>236 s/setenv CSVROOT/setenv CVSROOT/
239 :
名無しさん@お腹いっぱい。 :02/04/28 08:20
開発 LAN で CVS 鯖立てる話が出てるんだけど、マシンスペック要るかな。 20〜30人に狂う僧 500MHz ノートじゃ、やっぱ厳しい?
>>239 プログラムソースとか、テキストだけなら楽勝と思われ。
巨大な画像とか音声とか、バイナリファイルを扱うんだとしたら、CPUよりも、LANの線の太さとかメモリがノートでは厳しい。
で、だ。 巷にある、もしくは自作のバイナリ差分取得ツールをCVSに組み込むにはどうしたらいいんだろう? もしかして、無理? ディスクスペースをなるべく圧迫させないようにバイナリファイルのリビジョン管理をしたいのだ。 自称「安い」高価なPerforceは「圧縮して管理します」とかいってますな。
>>242 cvswrappersに -f/-t フィルタとして書く、というのは?
cvswrappersのオプションって -m / -k だけじゃないの?
バイナリdiffをグーグってみたが、なかなか見つからないYO! バイナリの差分ってそれほど需要ないのかな…
xdelta
248 :
名無しさん@お腹いっぱい。 :02/05/01 01:38
バイナリとテキストを区別すんのがメンドイ YO! ディレクトリまるごと簡単に管理する なんか楽ちんな方法ないかな。
>>248 なんで?
拡張子の種類が多すぎる、あるいは、拡張子が同じでもテクストとバイナリの両方があるってこと?
250 :
名無しさん@お腹いっぱい。 :02/05/01 11:12
Unixの習慣だと、binaryそのものよりそれを生成する sourceを 保管するもんだろうからな。意味的に差分とりやすいし。 とはいえ、bitmapとかやはり..
1バイト1行のuuencodeとか。 アホくせー(w
(´-`).。oO(放置しておこう)
じゃあ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 1. そこに書いても誰も反応しない、所詮は犬板
2. そもそもsubversionは犬specificではない
3. きらいやねん犬板
(´-`).。oO( Subversionって、perversionとかinversionとか連想して なんとなくイヤだなあ…
>>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 ってソフト作っちゃうぞー
いきなりですが、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(標準)にしました。 これでしばらく安定していたのに...
>>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
して調べてみたら?
>>262 さん
レスどうもありがとうございます。
試してみましたが、結局うまくいきませんでした。
ひとつわかったことがあるのですが、リポジトリ上でcommit できないファイルを
直接リネームしようとすると、windows の「このファイルは共有中です」といって
OSがファイルをロックしてしまい、別のクライアントからアクセスできませんでした。
commit できるファイルは、リポジトリ上のファイルを直接リネームとか
できます。
で、ロックされているファイルを右クリックしてファイルの所有者を調べ、
その所有者のマシンを再起動してもらいロックをはずすことで解決しました。
ちなみに社内の別のチームでも同じことが過去に起っていて、そのときは
win9xなクライアントからアクセスすると同じことが起きました。
この場合はサーバマシンを再起動しないとだめでした。
以上、スーパー板違いで申し訳ありませんでしたが、all windows な環境で
:local 方式で WinCVS を使っている場合の参考になれば幸いです。
(all windows で WinCVS な人は多いと思うんだけど、そういう人はこの板に
いないか...)
>>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の定義とは
また別個の問題のような気もするのですが。。
>>265 checkoutされているのはHEADなんじゃ……
>>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)
いま 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 です. 何か他に設定がいるのでしょうか.
>>268 シェルスクリプトはsuidできないよーな。
270 :
名無しさん@お腹いっぱい。 :02/05/19 18:47
>>236 これって、mountオプションのnosuidとかそういうのが
原因なのかねえ。
>>271 あ、ローカルに CVSROOT 作って試しています。
(´-`).。oO( CVSディレクトリが邪魔になるって 一体どういうことをしてるんだろう。。。
>>271 checkoutでなく、exportしたら?
>>271 何をしたいのかわからんがexport使えば?
>>273 コンパイルの代わりに動作環境にアップロードってな感じなんで、
安定するまでの作業中にディレクトリごとアップロードしたいときに
じゃまになるんです。
>>274-271 どうもです。WinCVS のチェックアウト時のオプションに
「CVS管理用のディレクトリを作らない(export)」と言うのが
見つかりました。けどやっぱり CVS 管理外になってしまって
このまま作業はできないんですね...
どこか別にまとめて持ってくれるだけでも助かるんですが...
テスト環境には管理ディレクトリも気にせずアップロード、
本番環境には export したものをアップロードってのがいいのかな?
(´-`).。oO(GTETの作者なんだろうか…?)
>>276 CVSROOT/loginfoとか使って自動的にftpするとか。
シェル使えるなら鯖側にリポジトリ置いた方が楽かな。
>>277 ...
>>278 loginfo 見てみました。なんか commit 通知をどこに送るか
みたいなことが書いてありましたが、確かに自動的に ftp
させるようなこともできるみたいですね。鯖側に...
そか、コピーするだけでいいような状態にもできますしね。
勉強になります。
>>279 いや、むしろ
1. バッチ処理で 「もし export が成功ならば ftp でアプロドする」
または
2. サーバ側で CVS を動かす
(クライアント側の CVS から接続できない場合は、
telnet かなんかで鯖のシェルに CVS コマンドを叩き込む…が、
これじゃ GUI は使えない)
または
3. 鯖のディレクトリをクライアントのファイルシステムにマウントする
つーあたりが現実解なのではないかと。
サーバに転送するときに CVS ディレクトリを除外すればいいんじゃないの? 今時の大抵のツール (何使ってるか知らないけど) ならそういう機能持ってるのでは?
(´-`).。oO( データファイルを千単位のディレクトリに小分けしてるような プロジェクトだったら嫌そうだなあ。。。
普通 CVS という名前でマッチングできるのでは?
>>280 commit する前にサーバに送って試したいので...
>>281 SCP しか使わない感じになってきてるんで
ちょっとツールは弱い感じ。WinSCP と putty の scp は無理かな。
結局テスト環境には気にせず転送(マウントでもいいけど)
ってのがいいのかも。あとで消す場合は楽だしね。
実際あって動作に支障がある訳じゃないし。
286 :
名無しさん@Emacs :02/05/22 09:37
cvsignoreを使って除外するファイルは指定出来ますが 排他的に指定は出来ないでしょうか? Webページをcvsで管理したいのですが、*.html以外は いらないです。
287 :
名無しさん@Emacs :02/05/22 14:47
cvsってシンボリックリンンクは追えないのでしょうか? dotfileを一つのディレクトリにシンボリックリンンクを 張って管理しようとしたのですが…。
289 :
名無しさん@お腹いっぱい。 :02/05/22 20:34
>>289 *BSD開発があれだけうまくいってる(ように見える)とCVSで十分と思えるけど…。
あれはあれで開発者は不満なのかな??
でも不満があれば作り変えちゃう連中だしなぁ???
>>286 こんなんどうかな……
*.[^h]???
*.?[^t]??
*.??[^m]?
*.???[^l]
>>292 ~/public_html/.cvsignoreに書いてみましたが効果ナッシングです。
.jpgやら.plやら.cgiやら、可能性のある拡張子を登録していくなんて美しくないです。
htmlを管理している人はどうしてるんですかね…。
>>293 普通、ディレクトリ丸ごとリポジトリにつっこむだろ。
>>294 バイナリや関係無いファイルも気にせずGoって事ですか。
>>295 .cvsignoreは
*
のみ(全ファイル対象)にする。
*.htmlなファイルをcvs add & ci。
これで*.htmlだけCVSで扱えるような、
そんな予感がします。
予感だけかもしれないsage。
>>295 ある時点での作業状況が完全に再現できるというメリットを考えればバイナリも入れるべきだと俺は思う。
CGIスクリプトのログとかは微妙だけど。
訂正
>>293 では.cvsignoreを置く場所がまずかったようです。
~/.cvsignoreに置かないと駄目なんですね。
>>296 > *.htmlなファイルをcvs add & ci。
ディレクトリ以下全ての*.htmlを
追加する方法はないでしょうか?
zshを使っています。
思ったんですけど、cvs addってファイル単位で出来ませんよね。 cvsignoreで*を指定 public_htmlでcvs import →何も追加されない cvs checkout cvs add *.html →これでカレントディレクトリのhtmlは追加出来る。 cvs commit →反映 で、サブディレクトリ以下の*.htmlや、今後増える。*.html を追加するには…?
>>302 > 思ったんですけど、cvs addってファイル単位で出来ませんよね。
そうだったのか。知らんかったYo!
あれ、違ったのですか。 すいません。 % cvs add aaa/index.html cvs add: in directory aaa: cvs [add aborted]: there is no version here; do 'cvs checkout' first ってなって出来ないんですけど。 cvs checkoutはしえあるのですが。 確かにaaa/CVSはないですけど。
cvs add aaa
>>305 それって、結局ファイル単位でadd出来ていませんよね。
>>295 あー、そうすると core もなノカー Σ(´Д` )ズガーン
ファイルを追加出来ました。 addの後、commitするにもファイルを指定するんですね。
>>304 cvs addはファイルのあるディレクトリでしか出来ないよ。
% cd aaa
% cvs add index.html
ま、一度
% info cvs
しなさいってこった。
>>309 おう、そうなんですか。ありがとう。
一応本も買って勉強してるんですがね。
>309 | /⌒ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ │ ・◎・)< そーでもないよ │ ・ つ \ │ ・ │  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \_/ cvs add aaa/index.htmlが成功するためには ディレクトリaaaがcvsの管理下にあればいいよ。 cvs add aaaすればaaaが管理下に入る。 cvs add files/patch-*とかよくやりますです。
>>311 Unlike most other commands, the `add' command is not recursive. You
cannot even type `cvs add foo/bar'! Instead, you have to
$ cd foo
$ cvs add bar
って書いてあったからそうなのかなあと(cvs.info)。
>312 実際の動作から見ると、infoが追いついてないのかなあ。 ~$ cvs co test cvs checkout: Updating test U test/VERSION ~$ cd test/ ~/test$ ls -lF total 2 drwxr-xr-x 2 nanashi nanashi 512 May 23 20:50 CVS/ -rw-r--r-- 1 nanashi nanashi 9 Jan 15 2001 VERSION ~/test$ mkdir newdir ~/test$ cvs add newdir Directory /home/nanashi/cvs/test/newdir added to the repository ~/test$ touch newdir/newfile ~/test$ cvs add !$ cvs add newdir/newfile cvs add: scheduling file `newdir/newfile' for addition cvs add: use 'cvs commit' to add this file permanently ~/test$ cvs commit -m '' cvs commit: Examining . cvs commit: Examining newdir RCS file: /home/nanashi/cvs/test/newdir/newfile,v done Checking in newdir/newfile; /home/nanashi/cvs/test/newdir/newfile,v <-- newfile initial revision: 1.1 done ~/test$ uname -sr OpenBSD 3.0
>>313 ホントだ、出来るようになってる。目出度い。
では、
>>304 は
% cvs add aaa
% cvs add aaa/index.html
でいいわけですね。
dot.fileをシンボリックリンンクを張り、1ヶ所に集めてCVSで管理しようと
したのですが
>>287-288 を見ると出来ないようですね。
そこで、逆に本物のファイルを1ヶ所に集めて、~/以下にシンボリックリンンク
を張る事にしました。
% ls -l .emacs.el
lrwxr-xr-x 1 mona- wheel 24 Jun 5 05:49 .emacs.el@ -> work/dot.files/.emacs.el
これでうまくいきそうなのですが、Emacsから~/.emacs.elを開こうとすると
Symbolic link to CVS-controlled source file; follow link? (yes or no)
と聞かれ(たぶんPCL-CVSの機能だと…)、Linkを追うのでyesと答えると
Selecting deleted buffer
と共にbeep音が鳴ります。~/.emacs.elのバッファは表面に出て来ません。
noと答えると、ファイルが開けます。
どう違うのかよくわかりませんが、noで問題無いなら無条件でnoにしたいのですが
やり方を知っていませんか?
(´-`).。oO(ハードリンクじゃだめなんだろうか?・・・)
>>318 ハードリンクだと、~/work/dot.files/の中のdot.fileを修正しあと
~/のdot.fileに自動に反映されない気がするのですが。
シンボリックリンンクだと反映されますよね。
自分馬鹿なんで、間違った事書いてたら、どんどん煽って下さい。
(´-`).。oO(とりあえずハードリンクでためしてみてはどうだろうか?・・・)
file system が違うと利用できない > ハードリンク
>>321 もちろん試しました。
しかし、自分のやった範囲では、反映されませんでした。
きっと、自分のやり方が間違ってると思うのですが、
どう間違っているのか分かりません。
>>322 file systemはufsです。
ufsでもハードリンクは使えると思うのだが、 ~/work/dot.files/.emacs.el があったとして、 ~/ で ln work/dot.files/.emacs.el ってやってつくったんだよね? ls -iでi-nodeが同じになってるかどうか調べてみ。
>>324 cd work/dot.filesして
cvs import したあと、管理を初めるのにcvs checkoutした時に
ハードリンクを切ってしまったからのようです。
cvs checkoutする時に 1度work/dot.filesを消したから当然かも。
cvs checkoutしたあと、ハードリンクを張る事で解決したようです。
ありがとうございました。また、お世話になると思いますが
よろしくお願いします。
それって、backup-by-copying を t にする必要がありそうだね。 いままでこの変数を気にしたことなかったけど。
ん?なんで?
あぁ、そっか、ぼけてた。 backup-by-copying-when-linked でもいいみたい。
当然checkoutするとi-nodeが変わるのか…。
うん? ちょっとまとめてもらいたいんだけど、
backup-by-copying なり backup-by-copying-when-linked を
t にした状態において、vc とか pcl-cvs で ci, co などを
したときハードリンクは正しく維持されてるの?
>>317
ドットファイルを直接管理した方が楽だろうに
ふと思うに、 ~/.emacs.el を編集するのではなく、 ~/work/dot.files/.emacs.el を編集すればシンボリックリンクのままでいいのではなかろうか?
>>330 こんがらっているので、もう1度整理してみます。
>>331 cvs importした時に~/以下のファイルがみんな登録されてしまいませんか?
>>332 ちょっと試してみます。
>>333 > cvs importした時に~/以下のファイルがみんな登録されてしまいませんか?
import は空のディレクトリで始めればいいのでは。で、ホームディレクトリに
checkout する。あとは、個別にドットファイルを add という具合に。
目から鱗とはこのことだな。いやあ、感心したよ
>>334 > import は空のディレクトリで始めればいいのでは。で、ホームディレクトリに
> checkout する。あとは、個別にドットファイルを add という具合に。
ホームディレクトリにcvs checkoutする時、cvs import で指定した名前の
ディレクトリが作られませんか?
cvs import dot.files name start
cd
cvs checkout dot.files
ls -F
dot.files/
な風に。
mv dot.files/* .
したけど、これでいいのか分かりません。
>>334 cd ~
cvs checkout -d . dot.files
とすれば良かったのでは
>>317 俺は ~/.emacs には
(load "~/.rcfiles/emacs.el")
の一行だけ書いてる。
で、~/.rcfiles/emacs.el を編集。
343 :
名無しさん@お腹いっぱい。 :02/06/15 18:20
勉強になったのでageても良いですか?
いやーこのスレのおかげで快適なCVS生活を送ってます
346 :
名無しさん@お腹いっぱい。 :02/06/15 21:06
結局、ファイル管理じゃなくて人間管理になってしまうのでした。
>>341 ネットワーク上での転送量が問題なんだとすれば……
CVSが送れる差分は、サーバ側ファイルの各リビジョン間の差分であって、
そういう差分を使って更新することができない場合は全部送信する。
あと、マージ不可なファイル(バイナリとか)は、そもそも常に全部送信する。
checkout modeの時にこういう対象をrsyncアルゴリズムを使って更新して
いるかどうか、ソースを読もうと思ったけど、……分からん。
つまり rsync + cvs みたいなものですか。
>>347 ほっぽってしまってすんまそん
とりあえずナニが早いのかは置いておいて
CVSup のオフライン CVS 的な使い方の方を...
http://cvs.m17n.org/cvs/offline.ja.html レベル3のところが良くわからんので適当に書いてみる。
*BSD とかのソースをハッキングする場合を想像しているけど...
commit できない状況でコードハッキングを行う場合に
CVSup でリポジトリを丸ごと持ってきて、持ってきたリポジトリに
俺ブランチを切って commit したりする、と。
で、本物のリポジトリの方が更新されている場合、
CVSup の非exact モードで再度リポジトリの複製を行うと
CVSup が RCS ファイルの中身を解読して追加分の
リビジョンとかタグとか差分のみ持ってきて
俺ブランチが本物のリポジトリと重ならない限り
俺ブランチも保たれる、と。そう言うことになるわけ?
あ、少しわかってきたかも。ブランチが重ならなくても
リビジョンが重なる可能性はあるわけやね。
それでブランチのリビジョンナンバーを指定できるパッチというわけか。
まだブランチもろくに切ったことないんだけど .2 が後に付くのが
普通の動作だっけ?それじゃ重なるわな。
http://www03.u-page.so-net.ne.jp/fb3/tomonori/diary/200109.html#05 ここの日記に書いてあるのを見ると、subversion が
CVSup の行うオフラインリポジトリ的な範囲までを含んだ
事ができるとか。subversion は期待大なんでしょうか?
どの辺まで進んでるんだろ?
>>350 戻ってきてもあいかわらずほっぽっておかれている罠。
| 事ができるとか。subversion は期待大なんでしょうか?
| どの辺まで進んでるんだろ?
# cd /usr/ports/devel/subversion && make install
MLの dev@subversion はすごく活発みたい。
Apache2 も出たことだし、Subversion のリリースも近い、といいな
>>351 と言うか
>>350 の書き込みに間違いはないの?(^^;
かなり当て勘入ってるんだけど。
>>353 フリーだけどオープンソースじゃないのね...
けど、各 OS 用のクライアントがそろってるのはいいなぁ
IDE 用のプラグインも用意されてるし。
>>355 (お前はいったい何なんだ)
オフライン開発は、commitする時にだけ俺repoを指定するんでしょ。
このスレッドの過去のメッセージに書いてない?
>>357 すんまそん、図々しく書いてしまって。
>>351 でさらっとレスされたので、
>>350 があってるのかどうかわかんなかったんですわ。
このまま進めちゃうと間違った情報がつっこみのないまま行ってしまう
可能性があったんでちょっと確認したかったんです。
このスレッドには CVSup の事は一つ二つあった程度ですな。
>>358 (なんで適当なこと書いて他の人に修正させるんだよー:)
オフライン開発は、CVSのリポジトリをオフラインでアクセスできればいいので
rsyncだろうとCVSupだろうと構わないでしょ。CVSupのCVS MODEはリポジトリを
そのまま本家のに同期しちゃうから、俺バージョンを手元の *,v ファイルに
マージなんていう気の効いたことはしてくれないんじゃないかな。
自分が修正したのを本家のリポジトリにcommitせずに持っておくために、
commitの時だけ
$ cvs -d:local:/path/to/myrepo commit
とする、みたいなことが書いてなかった?
>>359 >(なんで適当なこと書いて他の人に修正させるんだよー:)
すんまそん... と言うかほとんど質問だったんだけどね(^^;
>CVSupのCVS MODEはリポジトリをそのまま本家のに同期しちゃうから
リポジトリの複製に関して rsync と CVSup で違うところは
CVSup が RCS ファイルの中身を解析して追加された
リビジョンとかタグとか差分とかの追加分だけを書き込む
非exact モードなるものがあるところだと思ってたんだが...
リビジョンが重ならなければ自分のブランチと本家のブランチ
すべてを同期させたまま進めることができるって事なんじゃ?
ここのレベル3って項目がこれにあたると思うす。
http://cvs.m17n.org/cvs/offline.ja.html 今度暇があったら自分のところで試してみますわ。
>>354 バージョン管理が入ってなかったらDAVじゃなくてDAになるから。
1,2,3
Cygwin上でCVS1.11使ってんだけど、必要なくなったサブディレクトリを removeで外してたらupdate出来なくなって強引にaddとcommitしていって再び updateしてみたら全然別のディレクトリにファイルが出てくる。 という説明しにくい奇妙な現象が起きた。 んで、よくわからないけど $CVSROOT/CVSROOT/modules.db ってファイルの 中身みたらテキストとバイナリが 1:2 の割合で混ざってたんだけど、 もうだめかな?
もうだめぽ…。
>>364 CygwinのCVSってgdbmを使うようになっているので、
データがバイナリを含んでいるというか、バイナリの中にテキストが
あるような感じ? みたいな。
そのせいでWinCVSと混ぜて使えないような気がするんですが、
問題ないんでしょうか? ウチではなぜか不具合が起きてしまったので、
CygwinのCVSをuninstallして、WinCVSのみ使うようにしました。
Emacs21のpcl-cvsで add directoryするにはどうすればいいのでしょうか?
add directory なんてなかったですね。 ディレクトリをaddしたい場合はどうすればいいのでしょうか?
ふつーに a 押せばできない?
>>369 s-u押してcvs updateするのですが、そこにまだ追加されていない
ディレクトリは表示されないのです。だからaは押せない。
cvs-examineしたらUnknownとして出て来たけど? CVSやPCL-CVSのバージョンにもよるのかな。
>>370 すいません、僕のめんたまは節穴だったようです…。
確かにありました。
./a/b/c
のCというディレクトリを追加するにはaとbも追加しないといけないのですよね。
>>366 > データがバイナリを含んでいるというか、バイナリの中にテキストが
> あるような感じ? みたいな。
そんな感じ。単調なバイナリの塊の中に modules ファイルの中味が
そのまま綺麗に入ってて、なんかやばげだった。
> そのせいでWinCVSと混ぜて使えないような気がするんですが、
> 問題ないんでしょうか?
WinCVSは使ったことないけど Win版 Cygwin版でレポジトリの作りが
微妙に違うのだったら問題だわなー。
本家のソースを自分でmakeすりゃーええんでないの? > Cygwinでcvs
>>258 > 4.5Stableにageたらcvs diff -jが使えるようになりました。
> #Concurrent Versions System (CVS) 1.11.1p1-FreeBSD (client/server)
> #(cvs -H diffしても-jは出て来ませんが…)
だいぶ前の話で悪いんだけど、cvshomeから持って来た1.11.2には-jオプショ
ンってないみたい。FreeBSDのcvsってなんか拡張してあんの?
>>378 さんきゅ。本家に取り込まれないのかな。
つか、本家CVSの開発メンバーってかなり保守的な気がする。 $FreeBSD$みたいなローカルIDだって、本家でサポートしても良さ そうなもん、つーかML archive見たら何度か提案されてたみたい だけど、一向にサポートされる気配がないし。 しょうがないからと延々各自でパッチ当てるつーのもなんだかなと。
>>380 ローカルな改造を行っていてしかも公開している人や団体って、
FreeBSDの他にあるのか知りませんが(単に知らないだけ)、
CVSの開発元とは別の人が、そういうローカルなパッチを
合わせた状態で配布するってわけにはいかないすかね。
いくだろ。
>>381 いく。
ていうか、実際そのようにされていることに対して延々と(略)
384 :
地獄狂 YahooBB219017000159.bbtec.net ◆7WP8X9hw :02/06/25 19:37
質問いいですか? 1. HOMEディレクトリをCVSで管理した場合の利益を教えてください。 2. /etcをCVSで管理した(以下略) 3. emacsでCVSを扱う方法を詳しく説明してあるサイトのURIを教えてください。 上記、よろしくおねがいします。
>>384 1., 2.
CVS の 利点を考えるべし。
3.
サイトじゃないけど、
SoftwareDesign の先月号 (だっけ?) の記事。
emacs なら vc と pcl-cvs で完璧だよ.
正直、もう CVS は今のままでいいので subversion に頑張ってもらいたい。
389 :
地獄狂 YahooBB219017000159.bbtec.net ◆7WP8X9hw :02/06/25 21:04
あー今/etcをCVSで管理しようとしました。 しかしcheckoutするとshadowファイルのパーミッションが... CVSでパーミッションを復元するにはどうしたらいいのでしょうか?
390 :
名無しさん@お腹いっぱい。 :02/06/25 23:30
CVSのpserver立てようか迷ってるんだけど、 セキュリティ的にはどうなの? 攻撃されるとやばいかな?
>>383 事情は知らないんでヘタレなこと書いてたら申し訳ありませんが、
> ていうか、実際そのようにされていることに対して延々と(略)
ということは、既にどこかのサイトとかでCVSへのパッチ集みたいなのが
公開されているってことでしょうか?
それともCVSのMLを読めば紹介されているのでしょうか。
>>389 リポジトリ内にあるファイルをいじっとけばいいのでは?
~/をcvsを管理していて、.ssh/configなんていうファイルを追加したのですが
.ssh/configの中に書いた$Id$が
$Id: config,v 1.1 2002/06/06 22:49:36 mona Exp $
こうなっています。config,vの所は.ssh/config,vとなって
くれると嬉しいのですがどうすればいいのでしょうか?
FreeBSDの/usr/src/UPDATINGを見ると
$FreeBSD: src/UPDATING,v 1.73.2.68.2.2 2002/06/16 00:26:30 bmah Exp $
こうなっているので出来るようなのですが。それとも
>>380 のように
$FreeBSD$のノーカルIDじゃないと出来ないのでしょうか?
続けてスマソ
Emacs 21.3.50のpcl-cvsで疑問が。
使い初めたばかりなのでこれが正常なのか分からないのだが
s-uで一覧を表示しAでChangeLogを編集する。
Cでcommitしようとすると、*cvs-commit*にはChangeLogに追加した
内容が表示される時とされない時がある。
う〜む。
また。AでChangeLogを編集しようとした時に、.ssh/configだったら
2002-06-26 koijun <
[email protected] >
* config (Module):
と表示される時と
2002-06-26 koijun <
[email protected] >
* .ssh/config (Module):
と表示される時がある。
>>393 $FreeBSD$ は $CVSHeader$ と同じになるように /home/ncvs/CVSROOT/options
で設定されてる。で、これは何かというと、$Header$ から $CVSROOT までを
削除したもの。詳しくは /usr/src/contrib/cvs/FREEBSD-upgrade 見てね。
>>394 それぞれ *cvs* バッファの Working dir: のとこはどうなってる?
>>390 ssh での認証にするか、それも嫌なら
stunnel ででもクライアント認証するよろし。
うちは趣味で vtun+stunnel で VPN 経由。
>>395 > 削除したもの。詳しくは /usr/src/contrib/cvs/FREEBSD-upgrade 見てね。
という事は$Id$を使う限りは無理って事?
>
>>394 > それぞれ *cvs* バッファの Working dir: のとこはどうなってる?
なるほど。.ssh/configと表示される時はWorking dir: が.sshになってました。
あとは
>>394 の
>Cでcommitしようとすると、*cvs-commit*にはChangeLogに追加した
>内容が表示される時とされない時がある。
だけだ。
>>397 > という事は$Id$を使う限りは無理って事?
そゆこと。
>Cでcommitしようとすると、*cvs-commit*にはChangeLogに追加した
>内容が表示される時とされない時がある。
これってCVSで使われる日付(UTC)とChangLogで使われる日付(local time)が違
うのが原因だったと思う。俺はChangeLogとcommit logの連係はあきらめてる。
>>398 > これってCVSで使われる日付(UTC)とChangLogで使われる日付(local time)が違
> うのが原因だったと思う。俺はChangeLogとcommit logの連係はあきらめてる。
あ〜なるほど。イギリスに住むしかねーな。
>>39 {8..9}
CVSの日付をJSTにしている人を見かけた気がするんだけど気のせいかな?
>>400 gmtime()をlocaltime()に変えるとか?
>>399 pcl-cvs なら Emacs だから, やる気ならなんとかなるな.
404 :
名無しさん@お腹いっぱい。 :02/07/03 00:47
CVS使ってみようかなぁと思ってるんだが、 たとえば最初にシフトJISで書いていたものをcommitして その後EUCに変更してcommitすると、どうなるの?
>>404 別にどうもならないんじゃない?
変換された文字が変更点とみなされるだけで。
./a/b/c/d って4階層ぐらいを一気に追加したい場合ってどうすれば良いんですか? 今は律儀に一個ずつaddしてるんですが・・・
普通はcvs import tagが1.1.1.1になるのが嫌で空importでcvs addしてるんだったら find a -type d | xargs cvs add で良いんじゃないでしょうか
409 :
名無しさん@お腹いっぱい。 :02/07/08 18:40
windows側のwinCvsとunix側のcvsとでやり取りができません。 環境設定はwindows,unix共にunix側の/homeに設定してます。 ログインしようとすると cvs [login aborted]: recv() from server 192.------: Connection reset by peer というメッセージが返ってきます。 どうすればいいのでしょう?
windows側でのCVSROOTはどーなってるよ?
私の肛門もCVSで管理されそうです。
やっぱりなんだかんだ言って英語でログ書くようにした方がいいのかねぇ 仲間内に一人 MacOSX を使っている人がいるんで どうしたもんかなと... MacOSX は基本的に SJIS らしいけど、一般的に EUC で収まっている CVS サーバの文字コードを なんとかするには nkf でも通すようにシェルスクリプトでも 組めばなんとかなる?
upgrade版でないのかよ!
すまん、誤爆だ。
cvswrapperを鰤。
>>415 cvswrappers って機能削除されたとか書いてあったけど
使っている人いるんでつかい?
417 :
名無しさん@お腹いっぱい。 :02/07/21 02:38
jakartaプロジェクトとかで公開されてるCVSのpserverに Win98からWinCVSでログインできないのは仕様なんでしょうか? NT系からだと普通にログイン出来るんですが。。
>>416 だっけ? 1.11.2でもcvs initするとcvswrapperって作るけど。
>>418 マニュアルにも削除されたとか削除されるから使うなとは書いてない。
422 :
名無しさん@お腹いっぱい。 :02/07/22 02:11
>>412 俺は OS X + cvs 使ってるけど、エディタが Carbon Emacs だから
何も考えずに euc-jp-unix で統一しちゃってる。
書いてるコードが Web アプリだから EUC-JP のほうが何かと便利ってこと
もあるんだけど。
>>422 log 表示はどうしてる?クライアントソフト自体は普通の CVS?
MacCVSX?
424 :
名無しさん@お腹いっぱい。 :02/07/22 05:43
~/work/hogeで作業していてS-uでPCL-CVSでupdateして A でChangeLogを書こうとすると、~/work/hoge/ChangeLog ではなく~/ChangeLogを編集しようとしてしまいます。 M-x cdで ~/work/hogeしても変わりません。 ~/ChangeLogが無ければ、~/work/hoge/ChangeLogを編集されました。 前はこんな挙動ではなかったと思うのですが…。 cvs版のEmacs21.3.50を使っているのでバグなんでしょうかね?
>>424 pcl-cvsなんか動作が微妙に変化してる。。CVS先端。。。
バグなんかな。。。。
>>424 M-x cd ~/work/hoge して、そこで cvs-examine してから A してみたらどうよ?
427 :
名無しさん@お腹いっぱい。 :02/07/23 00:55
>>389 cvs-confを使えば、パーミッション保存してくれるYO!
ただし、パーミッションの変化には追従できないので、注意
subversionってCVS使いにとってどうなんですかね? ~/の中のドットファイルを管理するのはsubversion の方が便利かな?
subversionの解説キボンヌ
430 :
名無しさん@お腹いっぱい。 :02/07/26 22:55
VC++などVisualStudioのプロジェクトをCVSで管理している人いますか?
431 :
名無しさん@お腹いっぱい。 :02/07/27 08:40
>>430 VC++ project を WinCVS+pserver で使ってます。
.dsw, .dsp を登録。
>>430 VC++用のMakefile, *.rcをCVSで管理してる
CVSで$HOMEのdot.fileを管理しているのですが~/.gnupg以下をadd しても大丈夫でかな?
うにゃ。 お ち る。
なんで落ちるの? binary だから?
>>436 関係ないのでは?
CVSの話はあまり広がらないのかな。。
438 :
名無しさん@お腹いっぱい。 :02/08/21 12:44
くだらない質問〜スレも書いてしまったんですが、 ここがあったので、改めて書きます。 WinCVSをダウンロードしたのですが、 1 これはクライアントのみで、CVSサーバーは別に必要ですか? 2 サルでもわかるチュートリアルページご存知でしたら教えてください
サル語で書かれたチュートリアルページは残念ながら見かけたことないでし…
>>438 CVS はサーバとクライアントソフトが同一のような
だから、WinCVS だけでローカルにリポジトリ作れるよ
と言うかデフォルトでそう言う状態になってると思う。
441 :
名無しさん@お腹いっぱい。 :02/08/22 00:51
create →new repository ですね。 チュートリアルのページはみんなサーバがすでに存在している 前提でかいてあったので、クライアント専用なのかと思ってました
442 :
名無しさん@お腹いっぱい。 :02/08/23 20:53
WinCVSですが、リモートから接続できる CSVサーバーとして立てることできますか? rshなどのプロトコルが必要みたいですが、 リポジトリのプリファレンスにでどう設定するのか 不明です
>>442 inetd と同じようなスーパーサーバが必要なんでは?
cvs 自身で listen できたっけ?
>>443 cvsnt(Win32にportしたやつ)なら自前でサービスプロセスになれたんじゃ
なかったかな。あるいはCygwin入れてinetdから起動するとか。
少なくともWinCVS付属のcvs.exeだけじゃできない。
システム構成がよくわかんないんだけど・・・、Windowsだけなら、 CVSROOTを共有フォルダとして提供するPCを一台用意して、 あとはクライアントにWinCVSを入れちゃうだけで良いんじゃないの? ・・・変かな?
446 :
名無しさん@お腹いっぱい。 :02/08/24 10:54
>>445 サーバの共有フォルダをクライアントでローカルフォルダとして
見てしまうって感じですね。
開発ツール(eclips)からCSVサーバーに接続したいのですが、
ローカルでもrcpプロトコルで接続しないとつながらないのかなと
思って
WinCVSだけだと、サーバ的な使い方はちょっとつらそうですね
448 :
名無しさん@お腹いっぱい。 :02/08/28 08:59
CVSのリポジトリのモジュールの一覧とタグ名って どうやって見ればいいのですか?
>>448 どちらもこれだ!という方法は無いみたい。
モジュールに関しては、リポジトリの管理者がちゃんとCVSROOT/modules
をメンテナンスしてるなら、それをcheckoutして中見る。もしそのリポジトリが
cvswebで閲覧できるなら、そこで確認するのが一番手っ取り早い。
タグ一覧もcvswebなら簡単に見れるけど、そうでなければ適当なファイルの
HEADをcheckoutしてlog見るとか。
450 :
名無しさん@お腹いっぱい。 :02/08/28 12:23
cygwinを使ってローカルPCにリポジトリで作業しています。 commitしたあとで、タグをつけようとするとthere is no version here; do 'cvs checkout' firstといわれてしまいます。 何か原因らしきこと思い当たるようでしたら教えていただけますか? この問題が出た場合、 現在のバージョンはとっておきたいので、もう一度インポートをかけている状況です。
>>450 ここにはバージョン管理されてるファイルはねーよ。まずcheckoutしろや。
とか言ってるんだけど…
commitした後releaseとかrm -rfしてワークファイル消してない?
原因はわかりませぬが、commitした後ならrtagを使えばとりあえずは 用が足りるのではないかと。。
いまCygwinで試してみたら、ちゃんとcvs tagできたよ。 working directoryの外からtagを打とうとしてるってことは無いよね。
454 :
名無しさん@お腹いっぱい。 :02/08/28 19:12
>449 CVSROOT/modules に、自分で手書きでメンテするんですか?
>>454 そうでしょ。wrapper使って自動化できるかもしれんが、
そんな頻繁に登録するもんじゃないし。
ちなみに、moduleはcheckout -c で見れるぞ。
457 :
ふわふわ名無しさん :02/08/30 09:55
複数の環境(例えばデスクトップとノート)の dotfiles を一カ所の CVS で管理したいと思っています。ファイルによって共通にしたい ものと別々にしたいものが出てくるのですが、うまいこと取り扱う 方法ないでしょうか? 別々にしたいものにホスト名で branch tag を打ち、それぞれの環 境では tag を指定して co すればいいかと思ったのですが、 tag を指定した co ではその tag のついていないファイルが生成 されないので敗北しました。 良いお知恵があればお聞かせ下さい。
>>457 ホームディレクトリ自体をワーキングディレクトリにしようとしてるの?
そうじゃないなら、make installでファイルをコピーするようにしといて
Makefileのinstallターゲットでなんとかする方が楽だと思うけど。
俺も
>>458 方式だな。
Makefileじゃなくてシェルスクリプトだけど。
>>457 .xsession や .emacs なんかは `hostname` の結果を見て処理を切り分けられる
けど、一般には難しいやね。
itojun さんは一元管理。
>>458-460 アドバイスありがとうです。
確かにその方がまっとうですね。
何故か全然思い至りませんでした。
そのようにする場合、コピーじゃなくてsymlink でもいいような気
がするのですが、どっちがいい、というのはおありでしょうか。
コピーの場合、~/.foo を編集して試してから working directory
のものに反映させて commit するのを忘れたり面倒になってしまっ
たりするのでは、とか(ちょこっと考えただけだと)思ってしまいます。
>>462 > そのようにする場合、コピーじゃなくてsymlink でもいいような気
> がするのですが、どっちがいい、というのはおありでしょうか。
たとえば .procmailrc なんかは書き換え->テストの間にも非同期に読み込ま
れちゃうよね。もちろんリンクで問題無いものも多いんだけど、これはリンク
でもOK、これはNG、てのを考えるのが面倒なので、リンクじゃなくてコピーに
してる。
> コピーの場合、~/.foo を編集して試してから working directory
> のものに反映させて commit するのを忘れたり面倒になってしまっ
> たりするのでは、とか(ちょこっと考えただけだと)思ってしまいます。
たぶん慣れの問題。しばらく試してみれば?
やっぱり面倒なようなら戻すのは大した手間じゃないし。
1つのファイルを cvs で管理してきて 1.17 まで来ました。 (ブランチなどの難しい事はしてません。) 今までの履歴を継続したまま、このファイルの名前を変え られるのでしょうか?
466 :
名無しさん@お腹いっぱい。 :02/08/31 17:17
pcl-cvs の cvs-status や cvs-examine のようなことを コマンドラインから出来る方法ってありますか? 1行1ファイルで、 file: status (status は、up-to-date, modified, unknown, missing, added, removed など) のように出力してくれる方法があれば良いのですが。
pcl-cvs で s-u で C して C-c C-c しようとすると 1つのファイルしか commit されなかったり、 cat't find *cvs* となったりする。
>>464 subversion だと名前の変更も履歴にとってくれるらしいよ
Emacs21.3.50 の PCL-CVS なんですが Update Directory して C で メッセージ書いて C-c で commit なのですが その動作が 2回目からは cvs-mode!: can't find the *cvs* buffer ってなって commit 出来ません。 Emacs を立ち上げ直して 1回目は出来るが 2回目は駄目。 何かやり方間違っているのかな〜。
470 :
名無しさん@お腹いっぱい。 :02/09/03 23:14
すいません、以下思いつくところありましたら、 教えていただけますか? cygwinのCVSを使っています。 cvs -d :pserver:taro@TP560X:/usr/local/cvsroot login で自分のPCで動かしてるpserverにログオンしようとすると cvs login: authorization failed: server といわれてしまいます。 認証はOSの認証を使っていて、自分のPC(CYGWIN?)にteletで ログオンできるので、パスワードとかは大丈夫だと思います あとps -efしたときにpserverがプロセスに乗ってないんですが、 これはOKなんでしょうか?
すっげー基本的なことかもしれんが、 日々の業務でCVS使う場合ってずっとreleaseしないで、update-commitを繰り返すの? それとも一旦commitしたらreleaseして再度checkoutしてる? ずっとreleaseしなかったらファイルの更新忘れなんかでトラブりそうな気がするんだけど。 そういった作法的なことがあんまり本には載ってないんで。
473 :
名無しさん@Emacs :02/09/04 01:20
>>470 >あとps -efしたときにpserverがプロセスに乗ってないんですが、
inetd経由とか
474 :
名無しさん@お腹いっぱい。 :02/09/04 08:04
>473 inetdのプロセスが2つあがっているので、これのひとつが pserverとか??? あとcvs pserverってやらないと、cvs loginはできてもcvs coは できないっぽいですね。
475 :
名無しさん@お腹いっぱい。 :02/09/04 08:45
> inetdのプロセスが2つあがっているので、これのひとつが > pserverとか??? いや、inetdからpserver (というかcvs)があがったら、cvs server ... って 見えるよ。forkするその一瞬はともかく (w > あとcvs pserverってやらないと、cvs loginはできてもcvs coは > できないっぽいですね。 意味がいまいち不明。 cvs -d :pserver:あんた@サーバ:もげ login cvs -d :pserver:あんた@サーバ:もげ co したら、あとは -d CVSROOT 指定しなくてもいける。ってこと言ってる んじゃないんだろうな、きっと… ひょっとして最初に -d なしで cvs login してる? ってそれって違うとこに loginしてることになるよ。
>472 そっちの本のほうが詳しそうだな・・・。 俺が買った「バージョン管理システム(CVS)の導入と応用」 の方はそのへんいまいち。
>>470 >cvs login: authorization failed: server
本当にこれしか出ないのか?
今Cygwin上で試してみたがちゃんと動くし、inetd.confの記述をミスってた
時はその上に「オプションの指定方法が不正だゴルァ」とちゃんと詳細出て
たが。
>inetdのプロセスが2つあがっているので
Cygwinのinetdはそれで正常。ちなみに両方inetdのプロセスであってcvs
のプロセスではないし、cvsにしろin.telnetdにしろinetdから起動されるもの
だから未接続状態ではpsの一覧に出なくて当然。
>>470 漏れもその状況でハマったことがある。
おまけに変なことに、localhostだと可能でリモートからだと駄目だったり。
(cvspserverポートにtelnetできるので、tcpwrapperとかではないです)
結局、解決できず、extでsshつかってます(w
480 :
名無しさん@お腹いっぱい。 :02/09/06 01:36
くだ質ですが、是が非でもお聞きしたい。 VSSを使うユーザーがどうしてもCVSを使ってくれないの・・・ 僕がLinuxで開発して、チームリーダーはWindowsで開発中なんですが。 統合したいから「CVSにしてくれ」とお願いしても却下されます。 「ごった煮WinCVSも使っていいから」とお願いしても意味不明なMicrosoftの論議を叩き付けられ困っています。 ど〜にか説得してCVSを使わせる方法を教えてください。
一人で CVS、CVS といって協調性のない部下がいるんですが ど〜にか説得して VSS を使わせる方法を教えてください。
482 :
名無しさん@お腹いっぱい。 :02/09/06 01:51
>>481 VSSを使いこなせるなら、VSSを使ってください。
覚えながら人に押しつけるぐらいなら・・・やめれっ
だってVSSの方が楽だもん。 CVSってサーバ上にあるモジュール一覧を 見ることすらできないじゃん。 モジュールを取得する前にモジュール名が 分からないシステムなんて、冗談みたい。
484 :
名無しさん@お腹いっぱい。 :02/09/06 02:51
>>483 そんなチームリーダーのために、cvswebを設置して差し上げたこともお忘れになったか?
>>480 igloo と CVSWeb のコンボでせめて下さい。
486 :
名無しさん@お腹いっぱい。 :02/09/06 05:32
>475 >478 >479 inetdをサービスに乗せて telnet でログオンを確認し cvs -d :pserver:あんた@サーバ:もげ login ってやるとログオンはできるけど、 cvs -d :pserver:あんた@サーバ:もげ co で checkoutができなかったのです。 でcygwinでcvs pserverってコマンドを実行し、 シェルをもうひとつあげてcvs -d :pserver:あんた@サーバ:もげ login でcheckoutできるようになったのです。 pserver Password server mode ってあったので、このモードを起動しないと、pserverが機能しないのかなって かってに推測しました
>483 CVSは、RCSのヘボさをごまかす為の お茶濁しシステムだからしょうがない。
>>483 たしかに、
何それ?
と思う瞬間ではあるわな
モジュールなんか指定しないでcvs co .しる。
>480 それ(理論的に)説得するとかどうとかじゃなくて、 政治層とかマネジメント層の問題じゃないか。板違い。 うそ
491 :
名無しさん@お腹いっぱい。 :02/09/06 11:37
>>490 政治層についていうなら、まったくありません。チームリーダー曰く、VSSが好きだから、Microsoftが偉大だから、だそうです。
顧客の断りもなくVS.NETで開発をし始め、メンバーにも.NETを押しつけておきながら、顧客からVS6を使ってくださいといわれるようなチームリーダーですから政治的な事なんてみじんも感じられません。
マネジメント層についていうなら、メンバーたちはVSSの偉大な機能のおかげで作業の進行が著しく遮断され、「むかつく〜」を連呼しております。
>>491 いっそ、全員でCVS使ってやったらどうよ。そのチームリーダ放置して。
493 :
名無しさん@お腹いっぱい。 :02/09/06 11:59
>>492 なんていうか、チームリーダーだけが勧めて(進滅て?)VSSを使ってるから問題なんです。
それに引きずられ、Windows開発のメンバーたちはVSSから最新版をとって、CVSにチェックインしているのはチームリーダー以外のメンバーたちです。
まぁよくよく考えてみたら、半年以上前からさんざんっぱらCVSでやってくれと言っているのに全く聞く耳を持たないチームリーダーには、何を言っても無駄なのでしょうなぁ。
放置というか下っ端メンバーがフォローするしかないのでしょう。こんなチームリーダーとは二度と組みたくないと誓い合うメンバーであった・・
>>493 さらに上を説得しろ。
つーか、板違い。
>>494 え・・こ、こういう話題はどの板でやればよかったのだろう?(^^;
>>495 この板でもかまわぬが、くだ質スレでやれ。迷惑千万。
ぐちはマ板のぐちスレでやってくれ。
やっぱマ板じゃないの? 「上司がCVSを使ってくれません」とか。
>491 逆に VSS の何処がそんなにダメなんだろう。 ちと興味あり。
>>491 VSSはろくに使ったこともないんで、俺も知りたい。
GUIなしでも全ての機能が使用できて、その上サーバ
になってリモートから操作したいけど、それは無理?
>>491 VSSがダメとかじゃなくて、上司(っつーかチームリーダ)に協調性が無いのが問題なんではないのかと。
客にVS.NET使うの説明してないところからしてもドキュソケテーイだし。
CVSって大概ソースコードの管理に使うか、/etc以下の管理に使ってるのが多いみたいだけど、
「俺はこんな使い方してるぞ、ゴルァ!!」
って人いない?
bookmarkの管理に使ってる。
コーラの運送に使ってまふ
バイナリデータの管理をしてる。 1個当たり数百KB〜数MB程度のファイルが合計1GB程度あるんだけど まとめてアップデートすると、サーバ側のプロセスのサイズが 200MBくらいになることがあるんだよね。 複数のユーザが同時にやっちゃうと、もう目も当てられない。 なんで?
>>505 全部オンメモリで処理しようとしているからだったりして……
それ以前にCVSだとバイナリ(-kb)ファイルは差分でなく毎回全部repositoryに
格納するので効率悪くない?
つか、元々テキストの事しか考えてないRCS/CVSでバイナリ(それも大量の)を 管理するってのに無理があるわな。
>>502 管理する程Bookmarkあるのか…そういえば、俺も最近増えてきたな。今度やってみよう。
>>503 ……(゚Д゚)ハァ?
>>504 違いますが何か?
>>505-507 Subversionもやっぱりバイナリの管理は丸々コピーなのかな?
>>506 効率わるいのはわかってるけど、とりあえずそれは諦めてる。
プロセスのサイズだけが今の問題点。
バイナリ管理でほかにいい方法があったら教えて欲しい。
バカでも GUI でなんとかいじれるやつ希望。
いや GUI をバカにしてるわけじゃなくて、
コンピュータにそれほど詳しくない人たちに使わせないといけないの。
>500 CUI では一応操作できます。 全ての機能が使えるかどうかは、わからないですが。 リモートはどうなんだろう。。。 # LAN 経由ではもちろん使ってたけど、外とかに置けるもんなのかしら?
>>510 >全ての機能が使えるかどうかは、わからないですが。
GUI依存の機能(ツリー表示とか。きっとあるでしょ?)がCUIだと使えないのは、
まあしゃーないけどね。バージョン管理が一通り、滞りなくできるなら文句はない
かな。
>>509 CVS にラッパ噛ませて xdelta と連携、とかできんかね。
513 :
名無しさん@お腹いっぱい。 :02/09/09 00:19
CVS勉強してるんだけど、importで新しいファイルが出来ると、 HEADにそのまま入って、新revisionとしてcommitするまで、 ベンダブランチがHEADになっているよね。 これって使いにくくない?それとも、何か理由があってこうなっているの?
>>499 VSSについて
・誰か一人がファイルをチェックアウトしていると、そのファイルはチェックアウトしている人以外は、基本的に編集出来ない。
編集する方法はあるが、かなり面倒で(読みとり専用になってたり)、チェックアウトした人がチェックインせずにご帰宅されると、他の人が迷惑被る。
・Visual C++ が故意の事故で「落ちる」とファイルサーバー(VSSのファイルが置いてあるところ)とローカル側の同期が取れずに編集した内容が消されたり、チェックアウトしているのにチェックイン使用とするとチェックアウトしていませんとか言われて迷惑被る。
はっきり言ってコレが一番最悪だ。
「落ちる」だけならまだしも、全体的にチェックインできないため一端対比・・・最新を取得・・・他人のチェックインしたファイルを逐一チェック・・・これは上書きしてOK・・・これは他人がチェックインしたからマージして・・という手順があったりする。
・「ファイルを共有」という機能があるが、結局チェックアウト、チェックイン自体も共有されてはっきり言って意味がない。
チェックアウトされていても操作する方法が在ると「リームリーダー」は言うが、やり方を知らないと言い張っているので、VSS厨房な僕にはお手上げである。
開発環境が重ならない(?)ために、共有をしているのか、開発環境が人それぞれ違うからというが、なぜわざわざその人ごとに共有エリアを用意せないかんのか・・・余計な思想にとらわれ考える気が起きない。
・CVSにある日付を指定したチェックアウトが出来ない。
全く出来ない訳じゃない、ファイルを指定すれば出来るようだが、自分の欲しい日付に近いファイルを目視で探さないとだめ。(ファイル数が100を超えるともう目も当てられません。)
管理人(歴1年)の経験談より。
>>515 おまけ)
・パスワードを間違えると「パスワードが間違っています。」と言われる、ユーザー名を間違えると、「ユーザー名が間違っています。」と言われる。
セキュリティーホールか・・・
CVSのおまけ)
・メッセージが英語…(いや自分は気にしないんだけど)
英語嫌いな人がエラーを出すとすぐにわからないと言って管理者に聞いてくる。(僕だって英語は苦手だ)
しかし、それぐらいの英語を読んでくれと思うこと多々あり・・・(小一時間)
バージョン
517 :
名無しさん@Emacs :02/09/09 01:32
>>515 俺、VSSって名前しか知らなかったんだけど、
このまま知らない方が幸せ?
(あまり、お近付きになりたくなさそうな…)
>Visual C++ が故意の事故で「落ちる」
「故意」ってのがワラタ。
>>515 を見る限り、泥沼になれること請け合いだな。
519 :
名無しさん@お腹いっぱい。 :02/09/09 02:10
>515 499 っす。 参考になったです。ありがとうございました。 しかし同期が取れなくなるって。。。(´・ω・`)ショボーン
522 :
名無しさん@お腹いっぱい。 :02/09/09 08:17
>編集する方法はあるが、かなり面倒で(読みとり専用になってたり)、チェックアウトした人がチェックインせずにご帰宅されると、他の人が迷惑被る。 プロジェクトの規模が大きくてルールを徹底させるのが難しいと実使用では これが一番大きな問題かな。 でも、予算があればVSSのほうをおすすめしたい。編集中は他人にいじられない という面がとても強力だから。予算の関係でVSS諦めてCVSというプロジェクトも 多いんじゃない?
523 :
モナBERT :02/09/09 11:23
522> 編集中は他人にいじられないという面がとても強力だから。 普通は強力とは表現しないんちゃうか? VSS, RCS などのlocking model: 編集するのは一人。 編集中は他人がいじれないので他人の作業を気にしなくていい。 lockしたまま放置されたり死なれたりしたら、かなーり困る。 CVS などのcopy and merge model: 誰でも共有場所から取り出し(copy)て同時に編集できる。 複数人の編集を保存(コミット)しようとしたときの競合回避をしなければならない。 誰かが取り出したまま放置しても問題なし。 のように、一長一短あるわけやん。 それぞれの考え方(policy)でどちらのモデルを採用するのか決まるんであって、どっちが強いとかじゃないやんか。 それに、ある面を強く持てば持つほど、その面の欠点がより強く現れるともいえるしのお。
524 :
ドローン@ボーグ :02/09/09 11:51
おまえたちが非常に敵対心が強いスタッフ内でソースを構築しているのであれ ばロック機構は必要だろう。 だがそれは何の問題解決にもならないし、プロジェ クト/組織として既に死んでいるも同じだ。非-効率的だ。 複数スタッフによるプログラム構築において、ソースの共有/分担は、バージョ ン管理機構の云々以前に「仕事として」明確にすべきであり、それがあればロッ クなどというものが邪魔にしかならないことは明白だ。 我々はRCS, VSS, CVS, Subversionを同化してきた上で発言している。 非-効率的な運営を行なっている組織が問題なのであれば、強行手段に訴えるし かないではないか。「おまえたちを同化する。抵抗は無意味だ」と。
>>523 > それぞれの考え方(policy)でどちらのモデルを採用するのか決まるんであって、どっちが強いとかじゃないやんか。
locking model が有効に働くのってどんな場面なんですか?
>>514 importでHEADが変わるのは分かるんだけど、そうなっている
理由の説明が全然見付からないんで・・・
探し方が悪い?
>>525 恐ろしいことに実話なんだけど、copy and merge modelが理解できない、
(本人いわく理解する自身がない)人物がソース管理方式を任されていた。
問答無用でlocking modelが採用された。さらに恐ろしいことに、lock単位
がファイルではなく、Visual Studioで言うところのプロジェクト単位だった。
>>527 copy and merge model
お、初めて聞く単語だ。
ソースを要求するとそのコピーが渡される。
保存すると元のファイルに変更点を反映させる。
ってかんじっすか?
>>527 ロックがプロジェクト単位ってことは、あれですか?
プログラマは一人って事ですか?
>>529 いや, 多人数で使うには向いてないと思われ. 俺も手元のVSSで色々やったけど使い物にならん.
531 :
名無しさん@お腹いっぱい。 :02/09/09 16:01
>528 隊長!(死語か...) 検索してみたけど、copy and merge modelというより、 copy-modify-merge schemeというのがよく使われる用語らしいです。 報告いじょっ。
>>529 ここでのプロジェクトっつーのは、モジュールごとに用意される
「プロジェクトフォルダ」のことね。念のため。
>>508 | Subversionもやっぱりバイナリの管理は丸々コピーなのかな?
ううん。Vdeltaをぐぐーる。
CVSでも一応ロックかけられなかったっけ? 一度も使った事はないけど。
535 :
名無しさん@お腹いっぱい。 :02/09/09 18:14
>>534 cvs admin
とだけ打つとヘルプが出て、-lでロックとか-uでアンロックとか言う項目がありますね。
これやると、他人がチェックイン出来なくなるようです。(たぶん)
>>534 できるはずですが、確かに使ったことないです。
>>523 あと、実際問題として CVS でも VSS でも「誰が、いつ、どのファイルを編集して
良いのか」はソフトに任せる問題じゃないよな。開発者間で人間プロトコルを使っ
てネゴするのが第一で、その上でデグレードなどの事故を防止するためにソフト
の機能を使う。
538 :
名無しさん@お腹いっぱい。 :02/09/09 19:23
>>534 wincvsではdefaultロックだった気が・・。
うぜ、と思いました。
というか、locking modelのバージョン管理システム使った事ないんだけどどういう利点あるの? VSS派の香具師いたら説明してくれ。ロックなんぞしたら多人数開発してる意味がないんじゃないのか?
Winの開発でも当然CVS使ってますが、唯一困ったのがresource.hのマージ。 こいつはウィンドウID等のユニークIDを#defineしまくるヘッダだけど、 複数人が同時に同じID設定してもコンフリクトせずにマージできちゃう。 後で気づくと同一IDがゴロゴロと… こんなふうに、「ユニークなIDを振る」にはロックが必要かも。 もっとも、resource.hの場合はロックしたらvisual studioがどんな風に怒るか…
>>540 なるほど、了解しますた。
# でも逆に言えば、そういう用途にしか使わないんならcopy-modify-merge schemeの方がイイよね。
# CVSだって明示的に指定すればロックはできるんだし。
subversionって、インスコ面倒くさそうだな。
>>539 VSS派ではないが、別にロックされていても問題ない。
確かこんな感じ:
A. ファイルをGet; 読み取り専用属性をつけないようにする。
B. ローカルで編集
C. Checkout; ローカルでの修正を保持してロック(チェックボックスがある)。
C'. 一応ビルドが通るか念のためチェック
D. 使いにくい差分表示ウィンドウでざっとチェック
E. Checkin
だから結局、VSSで二番目ぐらいに痛いのはロックうんぬんでなくて、
ローカルでの変更点と、サーバ上で他の人が既にCheckinした変更点をうまく
まとめてくれる機能があるかどうか、なんだと思う。あと差分表示ウィンドウも
クソ。
一番痛いのはWindows共有のデータベースがけっこうよく壊れること、
特にネットワーク上の障害でやられやすいこと。これにつきる。CVSだったら
テキストベースだからなんとかできる可能性があるけど、VSSのデータベースは
バイナリなので、修復ツールでだめなら本当にだめだから。
>>515 > ・誰か一人がファイルをチェックアウトしていると、そのファイルはチェック
> アウトしている人以外は、基本的に編集出来ない。
VSSアドミニストレータのオプションで、
同時チェックアウトができるように設定できます。
また、VSS の admin であれば、他人がチェックアウトした
ファイルのチェックアウトの取り消しができます (これは、
最終手段ですが)。
> ・「ファイルを共有」という機能があるが、結局チェックアウト、チェックイ
> ン自体も共有されてはっきり言って意味がない。
「リームリーダー」が何を意図しているのか不明ですが、
共有機能の使い方を誤っているのでしょう。
共有+分岐か、共有+ピン設定を使うべきなのかもしれません。
>>525 locking model でないと、常に競合が発生する可能性があり、
マージの際に人的ミスが発生する可能性があるので、
locking model の方が、比較的安定した開発が行えるのだと
思います。ただし、実際の開発では、多人数で locking model
の開発を行うと、効率が落ちてしまうし、開発者にスキルがあれば、
競合で問題が発生することもあまりないので、locking model
のありがたみはあまりない、ということだと思います。
>>543 同時チェックアウトができるような設定にすると、
マージが必要な場合に、GUI のマージツールが使えます。
要するにVSSも使い方次第ってコトね。
>>545 少人数のスキルのない人の開発で有用、てことか。
初歩的な質問で大変恐縮ですが、 sourceforgeで開発者に登録してて pserverでチェックアウト、認証方法:passwdの状態で commitすると cvs [server aborted]: "commit" requires write access to the repository とエラーが出ます。 ssh認証にしないとcommit出来ないのでしょうか? 公開鍵というのが設定されていないような気がする、というか正直分からないんですが・・・。
>>549 正体バレバレだが。
> ssh認証にしないとcommit出来ないのでしょうか?
yes.
>>550 ありがとうございます。
という事はsshについて勉強しないとダメですね・・・。
552 :
名無しさん@Emacs :02/09/10 02:13
>>551 勉強するも何も、SSH入れて
環境変数 CVS_RSH を 'ssh'に、
サーバの指定を :pserver: ではなく :ext: に
で良いんじゃない?
>>550 正体がわからない…
nxt の開発に参加した人?
気にするな。 Linux 板で有名なコテハン厨房だよ。
>>544 なるほど、結局のところ、チームリーダーも僕と同じVSS厨房なんやね・・・
> VSSアドミニストレータのオプションで、
> 同時チェックアウトができるように設定できます。
ちなみにマージはどうなるのでしょう??
556 :
名無しさん@お腹いっぱい。 :02/09/10 16:30
>>540 そーゆーのはユニークなIDを割り振ってresource.hを生成する
というようなプログラムなりスクリプトなりを作るもんじゃないのかな。
>>556 と言われましても、VC++のリソースエディタが勝手にresource.hに定義を
追加して行ってしまうわけで。
cvswrapperみたいな感じでcommit時に番号振り直すスクリプトでも流す
しかないんじゃないかねぇ。
>>556 557さんの言う通りなのですよ…
仕事はちゃんと分担してるので、複数人がかぶったIDつけても
同時に関連イベントが起きることはまずなくて、被害も出にくいんですが、
やはり気持ち悪い…
cvswrapperは大げさすぎる気がするんですが、他の人どうしてます?
>>555 最新ファイルの取得時、もしくは、チェックイン時に、
マージの必要がある場合には、まず自動的なマージが試みられ、
コンフリクトがある場合には、GUI のマージツールが起動されます。
# GUI マージツールを常に使う/使わない等の設定もできます。
ただし、自動的なマージに癖があるようですので、
過度に信用しない方がいいかもしれません。
CVS と Visual SourceSafe の同期を取るうまい方法はないですかね?
>>512 xdelta について、ちょびっと検索してみた。
う〜ん、ラッパ噛ませるというよりは、 CVS 自体に
この機能を組み込まないと、コントロールしきれん気がする。
ともあれ、教えてくれてありがとう。
いつかうまく使えるかもしれんので、頭の中で肥やしにしておく。
>>562 意味がよくわからなかった。というか何が疑問なのかよくわらない。
565 :
名無しさん@お腹いっぱい。 :02/09/15 14:50
それだけでなく、importを繰り返すと、HEADが1.1.1.2になったり、 ベンダで新しく出来たファイルがHEADに入ってしまうのが気持ち悪い、 という意味です。 最初にimportした後、cvs commit -f -Rすれば、最初からあったファイルは 以後importしてもHEADは変わりませんが、ベンダで新しく作られたファイルは、 結局HEADに入ってしまうので、結局importのたびにHEADが変わってしまいます。 こういう仕様になっている理由、回避策を教えて頂けませんか?
importを繰り返す? 仕様以前に、使い方が異常なんじゃないの?
>>566 あるパッケージの一部として別パッケージを使ってるような時は別パッケージが
バージョンアップするたびにcvs importしない?
>>565 HEADが変わるっつーか、importで新規作成されたファイルのデフォルトブランチ
がベンダブランチになるのがイヤなんでしょ。
cvs importした後でcvs admin -bするんじゃダメなの?
cvs importがデフォルトブランチを変更しない場合、新規ファイルのデフォル
トブランチのみをベンダブランチにするのはかなーり面倒なんで、この動作は
特に問題ないと思うけど。
まあ、cvs importにデフォルトブランチを変更しないというオプションが有っ
てもいいとは思うけどね。
>>567 別パッケージをパクってくる場合か。ふむふむ、それはアリだね。
> HEADが変わるっつーか、importで新規作成されたファイルのデフォルトブランチ
> がベンダブランチになるのがイヤなんでしょ。
この説明でようやくわかったよ。何に難癖つけてるのかわからなかったんで。
>>565 CVS の思想として
ベンダブランチが標準
自分でメンテするのは、ベンダブランチから分岐したブランチ
という考え方になってるからじゃないの?
逆転させて、
自分でメンテするのを標準ブランチ
とすると、ベンダブランチの扱いや、分岐したブランチが複数ある場合に
HEAD をどこにつけるかを決めるのが難しいよね。
>>552 遅レスですがありがとうございました。
結局以下の事をやってみましたが上手く逝きませんでした。
WinCVSを使ってSSH接続でsourceforgeの某プロジェクトへcheckout/commitしようとしています。
まずAutoexec.batに
SET TERATERM_EXTENSIONS=1
SET CVSROOT='username'@cvs.sourceforge.jp:/cvsroot/'projectname'
SET USERNAME='username'
SET CVS_RSH=ssh と書き加え(''内は自分のusername&登録しているprojectname
コマンド入力は苦手なのでteratermpro&TTSSHを使ってSSH接続しようと思い、
puttygenで公開鍵/秘密鍵を作成 → アカウント管理で公開鍵を登録
→ TTSSHを立ち上げ、必要な項目を埋めて実行
'username'@sf-usr-shell:~$ となった所でttermを起動したまま
WinCVSを起動し、管理−設定→全般−CVSROOT:''
認証方法:SSH経由で接続 RSA鍵の位置:パス\identity
ポート指定タブ 使用するrshを指定するにチェック:'パス\ttssh.exe'
と設定してcheckoutを行うと、「tera term:エラー 'ホスト名が無効です'」
となってしまいます。
(TTSSHを起動する度にホスト名その他がリセットされているので
それが原因だと思うけど、起動時に前回の設定を反映させる方法が分からない・・)
良ければどなたかアドバイスをお願い致します。
というか今sshスレ読んでたんですけど 公開鍵ってプロジェクト管理者が登録するもので 他の参加者がアカウント管理で鍵の編集しても意味ないんですか・・・?
何のprojectだか知らんが、そんな状態でcommitしても他のメンバーの迷惑に なるだけじゃねーか?
>>571 参加者それぞれが自分の鍵を自分のアカウントに登録するもの。
>>572 まだ開発者一人だけだからいいんでない?
>>572 はい。それは正直心配ですね。
>>573 ありがとうございます。ちなみに1人じゃありません。
×WinCVSを起動し、管理−設定→全般−CVSROOT:'' 〇WinCVSを起動し、管理−設定→全般−CVSROOT:'username'@cvs.sourceforge.jp:/cvsroot/'projectname' でした。
他のモジュールで外部のモジュールを使いたい場合、
modules ファイルに &module を書けば良さそうですが、
http://www.sodan.org/~penny/vc/cvs-ja_18.html#SEC158 modules ファイルをチェックアウトして
module1 module1 &submodule
と書いてチェックインしてみたら module1/submodule 以下にしか
展開できないみたいです。まあ、これでも問題はないと思いますが
もし所定の場所に submodule を展開させたい場合は
どうすればいいんでしょうか?
逆に FreeBSD のように ls src/bin/ls などとやるしかない?
ソースの大本の場所が別のところになってしまいますが...
subversion の話ってここでいいですか?
Linux 板の方は閑古鳥ですし...
Subversion使ってる人いますか?
http://pc.2ch.net/test/read.cgi/linux/1002355536/ FreeBSD の ports で入れてみますた。
subversion って apache2 と合わせないと使えないのかと思ったら
svn import file:///absolute/path/to/myrepos someproject myproj
とか言う書き方でローカルリポジトリにアクセスするのね。
普通に path 書いたら跳ねられてできないのかとあわてふためいたYO
さていろいろ試してみまつ
>>578 > Linux 板の方は閑古鳥ですし...
話題振って盛り上げればいいんでないの?
>>579 どちらかというと Linux 板にあるのも不自然と思ってたり...
http://subversion.tigris.org/files/documents/15/576/svn-handbook.html ここを読みながら move を中心にいじくってみますた。
move って基本的に cp+rm? 一応 cp は add するのと違って
すべての履歴が残るようなのでそう言う形のリネームは
できることになるけどリネーム前の履歴が見えるのはいいのか悪いのか...
基本的にはいい場合が多いんだろうけどファイルの依存関係が
入れ替わったりしてると大変そう。それをふまえた上での履歴参照
って事で扱えばいいのかな?
あと、tag が無くて cp でやれと言うような話になってるっぽい。
リポジトリを同じサーバ内で cp すると、複製されるんじゃなくて
tag が打たれるような意味合いになるのかな?
DB 内の話だからよく分からない...
>>579 | > Linux 板の方は閑古鳥ですし...
| 話題振って盛り上げればいいんでないの?
犬に知能を求めるのがそもそも間違いです
4割がディストリビューションのインストールだけ 3割がサーバ系プログラム動かすだけ 2割が ./configure ; make だけ 0.5割がソースをいじろうとするがCVSつかわない 0.5割がCVSユーザ 0.5割もいるかなあ(藁
(´-`).。oO( FreeBSDの「ディストリビューション」って何だろう。。
(´-`).。oO(
>>586 数値の部分が、該当Linuxユーザの
何に対する割合かという問いに対する答えが「FreeBSDユーザ」
なんだろうよ)
ん?犬ユーザ全体との割合じゃないのか?
根拠のない
>>583 に振り回されてるオマエらはアフォ。
>>590 まあまあそう言うな。
>>583 の書き込みだって、主観のみに基づいた
半分ヨタ話だってことは、当の
>>583 自身が分かってて書いてる(最後の
一行から)。
>>584 以降は、それに付き合ってるって感覚だろう。本気で振り
回されてる奴はいないよ。
>>591 遠回しに「面白くない」と言われてるんだろう。
594 :
名無しさん@お腹いっぱい。 :02/09/29 19:57
LINUX板ではわかる人がいらっしゃらなかったのでお願いいたします。 環境変数の一般的なことで質問させてください。お願いします。 CVSROOTという環境変数を CVSROOT=/usr/local/cvs に設定したとします。 echo $CVSROOT で /usr/local/cvs と出てくるのでここまではOK。 そして、 cvsのインポートコマンド cvs import -m ("コメント文字列") (プロジェクト名) (ベンダータグ) (リリースタグ) (cvs import -m のあとの4引数は適当な文字列でかまいません。) と入力しました。すると、エラーメッセージ /usr/local/cvs/CVSROOT: No such file or directory となってしまいます。 $CVSROOTが指している/usr/local/cvs/という文字列の右側に CVSROOTという文字列そのものがなぜかくっついて認識されているのです。 これはCVSそのものの問題じゃなくて、何か環境変数のことで勘違いしているような気がするのですが どなたかわかる方いらっしゃいませんでしょうか。 RedhatLinux 8.2 TurboLinux 7 どちらも同じ結果が出ました。
598 :
名無しさん@お腹いっぱい。 :02/09/29 21:04
解決したんでいいです。レスしないで結構。
マルチする奴のメンタリティがよくわかる一幕ですた。
>>594 > LINUX板ではわかる人がいらっしゃらなかったのでお願いいたします。
答える人がいなかっただけだろう。
なぜ答える人がいなかったのか考えてみよう。
おれは Peggy っていうエディタ使ってるよ。 CVSもVSSも(RCSも)対応してていい感じ。
605 :
名無しさん@お腹いっぱい。 :02/10/01 09:20
パーミッションが 600 のファイルというのを CVS に登録するのは間違っているのでしょうか? cvs commit したと同時に 644 になってしまいますし、$cvsroot の中でもパーミッションが 644 になってしまうために user 以外に見られてしまいます。 秘密なファイルは cvs で管理しちゃ駄目ってことでしょうか?
共用のCVSROOTにcommitするのが間違いです。自分用に700のCVSROOTを作ったらよろし。
>>606 では、commit する毎にファイルが 644 になってしまうのは
手動で直せばいいのでしょうか?
>>607 $CVSROOTを700にしておけば、RCSファイルのpermissionはどうでもいいですよね。
あとはcheckoutした後に然るべき場所に然るべきpermissionで置いてやるような
Makefileを書いておいてmake install。
もしかして本番の場所に直接checkoutしてますか?
>>608 > $CVSROOTを700にしておけば、RCSファイルのpermissionはどうでもいいですよね。
はい。
> あとはcheckoutした後に然るべき場所に然るべきpermissionで置いてやるような
> Makefileを書いておいてmake install。
ソースコードではなく、.fetchmailrc なんです。自分の dot.file を管理するのに
CVS に登録しているのです。修正した後など cvs commit しています。
このファイルは 600 じゃないと fetchmail が動かなくて、cvs commit した後に
ファイルが 644 になってしまい、知らずに fetchmail が終了してしまうという
事が起きてしまいます。
> もしかして本番の場所に直接checkoutしてますか?
cheackout はしていません。
>>609 ~/.fetchmailrcを直接repositoryに入れるんじゃなくて、~/dotfiles/とかで
編集してmake installで$HOMEにcopyするようにすりゃいいんじゃないの?
>>610 > ~/.fetchmailrcを直接repositoryに入れるんじゃなくて、~/dotfiles/とかで
> 編集してmake installで$HOMEにcopyするようにすりゃいいんじゃないの?
面倒ですけど、そうするのがいいかもしれませんね。
ありがとうございました。
>>611 いまだにバグってるかも知れませんが、各ファイルのmodeを
保存する設定というのがあったはずです。
613 :
名無しさん@お腹いっぱい。 :02/10/03 01:01
あげん
>>614 「ん」は意思を表わす助動詞「む」の撥音便かと。
616 :
名無しさん@お腹いっぱい。 :02/10/03 22:42
いろんなところで期待している声をよく聞くが、需要が高い割にSubversionの開発が いつまでたっても進まないのはなぜ?
>>616 どのあたりが進んでいないと思っていますか?
>>616 ソースを維持管理するツールが不安定じゃ困るし、現状CVSでもなんとか
なってるから、まぁゆっくりいいものを作ってもらえばいいんでない?
確かに、枯れ優先になるのも頷けるよな。
Subversion を CVS 的に使う分には十分な状態だと思うけど、 タグ関係がちょっと違うのでとっかかりにくいかも。 IDE 環境とかだと CVS 対応ってのは結構あるし その辺も CVS の方が便利と言えば便利?
621 :
名無しさん@お腹いっぱい。 :02/10/13 01:20
新しくファイルを作ったり、削除したりするようなパッチを、 CVSの作業ディレクトリに当てた時に、自動的にcvs add/cvs remove してくれるようなツール無い?
>>621 引数無しでcvs addやcvs removeじゃダメなのか?
>>621 私は既存のソースパッケージからフルオートでリポジトリを構築する
ツールを開発しているのですが、汎用的に使えるよう細分化した中の
ck_update というのがまさにそれです。
cvs -n up -I (任意) を用い、CVSが知らないファイル(とディレクトリ)を
cvs add し、CVSが知っているが存在しないファイルを cvs rm します。
再帰的に動作します。興味があればどうぞ( ´∀`)
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/cvsknit/cvsknit/bin/ck_update ----
$ ck_update -h
ck_update -- Casts 'cvs add/rm' recursively
Usage: ck_update [-I ignore] <directory> ...
-I ignore except in './.cvsignore' (see cvs info)
※パッチを当てた直後でしたら、"-I ! -I '*.orig' -I '*.rej'" などを与えて下さい
※cvsで言う -n オプションも使えます
----
>>621 さんの書かれる通りの危険を孕んでいるため、
・動作するディレクトリを明示しないと動きません
・デフォルトでは、CVS/Rootが :local: でない場合は動きません
(ck_verifyと言う、CVS環境を検証するスクリプトを呼んでいます)
>>621 というのは
>>622 の間違いです。
ck_update をリモートCVSに対して使いたい場合は、 at your own risk で
44行目あたりの
ck_verify 'local'
を
ck_verify 'cvs'
として下さい。
スクリプトへのツッコミ歓迎です。
お手柔らかにお願いします( ; ´∀`)
複雑なことをしないなら WinCVS とか使うより サーバ上で動かしつつ samba で作業したりしてもいいかもね。 「新規テキストファイル.txt」とか登録されまくるかもしれないけどw
>>627 おそらく、cvsサーバ上で作業を行う、の意味であろう。
WinCVSが動くクライアント上で作業するのではなく、
サーバ上にある(sambaで共有されている)ディレクトリや
ファイルに対して作業する、と。こういう意味でok? > 626
共通ライブラリの管理用にグループ内でCVS使って、後からタグ付けて リリースするようにしてたんだけど、AP側がろくな設計してないもんだから 仕変の嵐。 ここ2年間の間にリリース回数延べ224回、ヘタすると1日2回とかタグが付 いたり、商用でVer1.2.3が動いてる段階でVer2.0, Ver2.1, Ver2.2がほとんど 同時並行開発だったり(なんだよそれー)、しかも一部のソースだけ開発 環境用と総合テスト&リリース環境用で物件が違うと来たもんだ。 おかげでタグだらけ/枝だらけでCVSの処理速度が加速度的に遅く… 総合テストリリース時だけタグ付けるようにすればかなりマシになるけど、 そっちの管理は別のグループがやっててCVS使ってない、つーか使えと マネージャーまで説得したのになんだかんだ屁理屈こねて結局手作業… ヽ(`Д´)ノウワァァン!! シンデマエボケー いくら良いツールを使ったとしても、体制と人間がアホだとどうにもならん というお話ですた…。・゚・(ノД`)・゚・。
>>624 それなら最悪importでいいんじゃないのか?
洩れが欲しいのは、
cvs patch -p1 hogehoge.diff
みたいな機能。*.oが残ったりしていても平気で使えないと悲しい。
もっと言えば、できればrejはconflictにしてくれれば嬉しい。
あ、621ね。
>>630 まあいろいろありまして・・・( ; ´∀`)
う〜ん、cvs ci 側を同時にラップするか、本当に
何らかの形でコンフリクト状態を作らないと
>>621 さんが期待していそうな使用感にならない予感です。
でも便利そうですね。
>>629 repo を mfs に乗せちまえって話があったよ。
>> 体制と人間がアホだとどうにもならん
まったくだ
>>628 そうそう
けど
>>627 の言うとおり commit とかはサーバ上でやらないといけないね...
>>634 >commit とかはサーバ上でやらないと
よくわからなくなってきたな。
管理対象のファイルやディレクトリがサーバ上にあったとしても、
sambaによってクライアント側から見えているのならば、それは
クライアントが持っているように扱えるよね。だからクライアント側で
動くcvsから、サーバに向けてcommitできると思うのだが。
そもそもこの理解の仕方がオカシイのかな。
そもそも commit するためにサーバーにログインするぐらいならはじめっから ログインして emacs で編集しちゃうような気が
>>635 それ、大丈夫なんだっけ? 前に試したときには、改行コードの問題かなにかで
ハマったような記憶があるんだが。(気のせいかも)
639 :
名無しさん@お腹いっぱい。 :02/10/17 23:34
CVS というよりは、RCS の質問なんだが、わかる人教えて下さいな。 $Log$ ってあるじゃないですか。 以下のように吐いてもらえるとうれしいのですが、 設定をするだけで吐いてもらえることは可能ですか? <h2>ChangeLog</h2> <ul> $Log: index.html,v $ <li>Revision 1.10 2002-10-10 10:10:10 hoge <ul> <li>fuga <li>hoge </ul> <li>Revision 1.9 2002-09-09 09:09:09 hoge <ul> <li>uhihi </ul> </ul>
>>639 そういう時は普通、pre の中に入れるだろ
>>639 CVSでは$Log$の使用自体あんまりお勧めしてなかったと思うが。
それはともかく、$Log$のコメントリーダーはワークファイルの拡張子
別にハードコーディングされちゃってるので、自分でパッチ書かない
限り無理だと思う。
642 :
名無しさん@お腹いっぱい。 :02/10/23 00:32
CVSとANTの連携とよくいますが、どのような使い方をしているのでしょうか? 今は、antは使用しないで、.javaファイルと.classファイルを両方 commitしています。
class は commit しないのでは? だってソースから作れるから。 ant の CVS タスクで cvs update し、 javac でコンパイル、 junit でテスト jar でパッケージング って感じでは?
644 :
名無しさん@お腹いっぱい。 :02/10/23 04:02
作業ディレクトリで編集した内容を捨てたい時って普通どうしたら良いんですか? rm でファイルけして cvs update したらうまくいったんですがこれが正しいやり 方ですか?
>>644 cvs update -C file
もちろん、rm して cvs update でも問題なっしんぐ。
WinCVS だと unedit っての使ってるな。 ローカルの作業内容取り消しには。
>>647 それは cvs update -C をするものなの? cvs uneditは
cvs editの反対で「俺はこのファイルを編集しているぜ」フラグを
消すものなので紛らわしいね。
>>645 rmするよりは、mvしたほうがいいよ〜
cvs update -C file やると、file.#リビジョンってファイル名に自動的にmvされるっぽいけど。
わーいありがと
しつもんです viなどでファイルをすでに編集しはじめているときに 【修正するけど、前のファイルも残したい】 って時は、ファイルに連番(バージョン)をつけたくなります。 この時、CVSやRVSを使いこなしている人なら、こんなときどのような 行動を取りますか?
>>652 すみません、もう少し詳しく教えていただけませんか?
cvs tagは現在commitされている物に対して付けられるから、編集開始 してる状態でもその場でタグを打てば1つ前が分かる、という事でわ? ただ、このやり方は「とっておきたい」というタイミングでどんどんcommit するのが前提だけど。
655 :
名無しさん@お腹いっぱい。 :02/10/27 23:35
sambaなんて使わずに、共有ディスクにいれちゃだめかい?
656 :
名無しさん@お腹いっぱい。 :02/10/28 16:01
>621,632 あるディレクトリにcheckoutして、そこに変更加えたツリーを $ rsync -n -r -l -t --delete --cvs-exclude source/ dist で上書き。 で、>624のck_updateを使うというのはどうだろう。 削除されたのはR、変更されたのはM、新しいファイルはA、コンフリクトはC、 とできると思う。 これをバッチで走らせて、CVSの使い方を知らない複数人が作業しているWebペー ジの管理ができるのではないかと妄想中。
あ、-n オプションいらね。
658 :
名無しさん@お腹いっぱい。 :02/10/28 21:52
cvsntを使っています。 configにSystemAuth=yesと設定して passwdファイルに takahashi=!takahashi のようにユーザーを設定してもログインしようとするとエラーとなってしま います。 :pserver:ドメイン名\USERNAME@IP_ADDRESS: のような設定でドメインにあるユーザーならばログインできるのですが、 passwdを参照してログインする設定で動作させている人はいますか?
>>656 あるcheckoutを中心にして、他メンバーのcheckoutを適宜rsync
で叩き込んでcommitする案 (conflictマシーン) に見えましたが、
CVSを使ったテキストファイルベースのWiki、といった風情のシス
テムはいかがでしょう( ´∀`)
1. 各メンバーごとのアカウントで checkout したツリーを用意する
2. 1を Samba や netatalk で個別に見せて作業してもらう
3. telnet/ssh 経由で、番号選択で ck_update + cvs up + cvs ci や
cvs up や checkout し放題^H^H直しといった操作を任意で実行
できる様にする
4. 早朝に1回程度、自動でsyncさせてConflict等のログやファイル
の移動を記録する
5. webmasterはログをチェックし、Conflictの調停に走る
あ、話、合ってますか?( ; ´∀`)
あちこちに CVS っていうかっこ悪いディレクトリばら撒くなよヽ(`Д´)ノ
661 :
名無しさん@お腹いっぱい。 :02/11/01 17:39
あちこちに/* 前バージョン */ってかっこ悪いコメントアウトばら撒くなよ
662 :
名無しさん@お腹いっぱい。 :02/11/01 18:01
せめて .CVS/ にして
cvs.h の CVS を .CVS に書き換えてビルドしたら、そうでない人たちと の作業に何か困るだろうか? 特に何も困らない気がする。 問題は pcl-cvs とかの周辺ツールの方かなあ。
>>663 そうか、そういう手があったか…。
pcl-cvsとかは、何かsetqすればOKな気がする(僕はvc.elで満足してるので詳細はわからないけど)。
ところで、emacsのファイル補完対象から「CVS」を除く設定ってできるかなあ。
bashとかは変数設定すればできるから問題ないんだけど、eamcsでそれっぽいのが見付からなくて…
pcl-cvs は、pcvs.el を眺めてみたところ、"CVS" とハードコード されて分散していた。残念ながら setq 一発とはいかなさそう。 でもこれらを置き換えれば何とかなりそうな感じだ。 vc は vc-directory-exclusion-list に足すだけで良さそうですね。 関係ないけど、cvs-status が時々 cvs の出力のパースに失敗して おかしくなるんだよなあ(特にサブディレクトリがあるとき)。 なんとかならんかな。
666 :
名無しさん@お腹いっぱい。 :02/11/02 20:28
達人プログラマいわく、何でもCVSにつっこめということですが、 すべてを突っ込もうとすると、ファイル名というかディレクトリの分け方にものすごく迷いません? 一度入れてしまうと名前を変えるのはそれなりに面倒ですし、 衝突がないようにもしないといけないし… その辺りは実践されてる方はどうでしょうか?
667 :
名無しさん@お腹いっぱい。 :02/11/02 21:36
>>666 どうしても名前を変えたくなって、かつ、名前を変えたという履歴がいらないんなら、
repository直接いじってるよ。漏れは。
どうせ履歴残るっていっても扱いにくいし。
でも、そうするとしても、名前に迷うのはその通りだと思います。。
というか、コーディングって(ファイル名の命名も含めて)、
名前を付ける作業がかなりの割合を占めてるように思う今日このごろ。
いい加減な名前つけると、後々メンテできなくなるしね。
ここらへん、シングルで使う分にはVSSはいいんだよな。 作業ディレクトリに変なディレクトリ作らないし。 Windowsでしか使えない上に、MS製ということで信頼性に不安が...
669 :
名無しさん@お腹いっぱい。 :02/11/03 10:45
けど、ファイルは作りませんでしたっけ? 許容範囲とは思いますけど。
VSSのプロジェクトファイルみたいのは作るね。
671 :
名無しさん@お腹いっぱい。 :02/11/03 23:08
CVSで文字コードSJISで日本語ディレクトリ名(モジュール名?)を管理したいんだけど。 表示、申込、ソースなどするとノーマルなCVSでは管理できないようで・・・.cvswrapperでEUCに変換するつってもこれは、ファイルの中身だけですよね・・・? 方法はあるのでしょうか? とりあえずソース弄れ!は、最終手段として考えております…。
>>671 ソースいじれ。
ちなみに環境変数USERが日本語名だったりしても色々楽しい事に
なる模様。
674 :
名無しさん@お腹いっぱい。 :02/11/04 00:34
ということは、Windows で例えば cygwin の CVS を使うのは、 結構ワナが多かったりするということなんでしょうか
676 :
名無しさん@お腹いっぱい。 :02/11/04 01:30
>>671 漏れは普通に日本語ファイル名をCVSでコミットしてるけど、使ってるCVSは、Windows版の本家のやつ(CUIのやつ)だなあ。
あ、サーバ側はUNIXね。
UNIX側では、repositoryに、SJISのファイル名でファイルが作られてます。
別に、cvsでファイル名指定する時に苦労するくらいで、特に困ったことないよ。
cygwinでも大丈夫な気がするんだけど、だめだったりするの?
例によって「表」とかでおかしくなったりしないんかな。
>>678 EUC で送ってるみたいだから大丈夫みたい
ごった煮はGUI好きの人は良いと思うけど、漏れはvc.el使ってるので、CUIじゃないと駄目なのだ。
>>678 ファイル名をサーバに送る時に\が解釈されるとは思えないので、「表」も大丈夫だと思ってるけど。
あ、もちろん、コマンドラインの引数に渡す時は適切にクウォートする必要があるけど、
それはshellの役目でCVSの役目じゃないしね。
でも、確かめてないので、今度「表」ってファイル名でやってみよ。
681 :
名無しさん@お腹いっぱい。 :02/11/04 18:11
仮想ルート権限在りのレンタルサーバー借りてるので CVS Server使えるのか調べたいのですが、Serverを構築する条件は何でしょうか? ちなみにinetd.confの編集は却下らしい
管理者に聞く
>>680 ごった煮だとwincvsもcvs.exeも同じ設定になりますので、
EUCへの変換なども行ってくれます。だからemacsのvc.elでも
使うcvsがごった煮であれば問題無しかと思います。
私の環境がまさにそれ(xyzzy + cvs.l)で、
リポジトリにはEUCで保存されています。
唯一問題なのが、C-x v l の際にcvs.exeの出力(SJIS)と、
cvs logの結果(EUC)が混ざってしまうことでしょうか。
>>683 書いた後に気付いたのですが、ファイル名の話でしたっけ(汗;)。
ファイル名に日本語を使ったことはありません。ごめんなさい。
>>683 あ、ごった煮って、cvs.exeのパッチも含まれてるんだ。
漏れは必要と思ったことがなかったから、ちゃんと調べてなかった。スマソ。
>>681 inetd.confの変更がゆるされなくても、
rshかsshでそのサーバにログインできれば使えるよ。
read onlyなアカウントを作りたいとかだと無理だけど。
CVSのUNICODE化計画みたいなのは無いの?
ファイルの中身を変換だったら、
Clien Side : Shift JIS , Server Side : EUC にしたければ
サーバ側のCVSROOT/cvswrapperに
*.txt -f 'nkf -s' -t 'nkf -e' とかやれば問題ないはずです。(-f -t 逆かもしれん・・)
んで、ファイルの中身にかんしては、あまりパッチは必要ないと思うのだが?
# ログはまんまだけどね・・・
# サーバ側を全部Shift JISで保存されるようにしておけば、cvswebからは全部ShiftJISでお幸せにということもあるのですけどね。
私が悩んでいるのは
たとえば
cvs co ソース
~~~~~~ Shift-JIS
とかやるともうダメ〜な状況をど〜にかしたいわけなのですが・・
>>673 ん〜 やむを得ませんか・・・(^^;
689 :
名無しさん@お腹いっぱい。 :02/11/05 02:18
>>688 読みましたが?
>>680 > でも、確かめてないので、今度「表」ってファイル名でやってみよ。
この結果待ち・・・っていうか、
ごった煮で cvs import ソース(Shift JISコードね)ってなことやりゃ結果はすぐ見えますが。。。
ソCVSとかいうものができたり・・・
cvs co ソース もできません。(見つけてくれない。)
>>689 ファイル名そのもののエンコードを変更する拡張というのは
今の所見たこと無いです。単に私が見たこと無いだけか、
世間的に需要が無いのかわかりませんが。
多分cvsコマンド自身をいじった方が後々の為に良いと思います。
ところで、
> ソCVSとかいうものができたり・・・
> cvs co ソース もできません。(見つけてくれない。)
これって、WinCVSだと問題ないってことはありませんか?
もしくはお使いのコマンドシェルの問題とか。
>>689 やってみたら、できませんでした。がっくし。
> ls
CVS/ build.xml com/ hoge/ ソース.java
> cvs add *.java
cvs [server aborted]: could not chdir to ・ No such file or directory
> ls
CVS/ build.xml com/ hoge/ ほげほげ.java
> cvs add *.java
cvs server: scheduling file `ほげほげ.java' for addition
cvs server: use 'cvs commit' to add this file permanently
これはtcshで、cygwinのCVSでやったものだけど、
DOS窓でやろうが、Windowsネイティブのバイナリでやろうが、
結果は違ったものの、扱えないことにはかわらなかった。
上の'ほげほげ.java'みたいに'\'が無ければうまくいくのにねえ。
cvs の欠点を踏まえた上での新しいバージョン管理ツールの作成ってないんですかね どこかで聞いたことがあるような気もするんですが…
だってクソじゃーん。
>>695 思わず読んで激しく疲れた(w
偏見って怖いね。
>>697 葵の人も電波届いたな人も、あの文章に対してまともに返答してるのが
さすがというか何というか。俺だったら、サクッと /dev/null に送ってしま
うところだ。
しかし MS-DOS か。渋すぎ。
699 :
名無しさん@お腹いっぱい。 :02/11/08 00:42
結局のところ、Windows 上では日本語ファイル名は使わない方がいいという結論なのでしょうか
>>699 そうなっちゃうねえ。
まあ、SJISエンコーディングで'\'が入らない文字だけ使うことにすれば、使えないことはないのだけど…。
(というか、実際に使ってるし、ここで指摘されるまで'\'入りの文字がおかしくなるなんて知らなかった)
あるいは、WindowsのCVSに手を入れて、EUCにしてから送れば問題ないはずなのだが…。
701 :
名無しさん@お腹いっぱい。 :02/11/08 22:12
普通に import すると、カレントディレクトリのファイルを全部登録してしまいますが、 特定のファイルだけ import したいときは、まず空のディレクトリを import してから add するものなのでしょうか。
702 :
名無しさん@お腹いっぱい。 :02/11/08 23:52
>>701 特定の拡張子だけ除外とかではなくて?
特定の拡張子除外とかなら、.cvsignoreでOKなんだけど。。
例えばホームの dot file を管理したいとしますよね。 ここでホームを import してしまうと、ホームが丸ごと CVS に入ってしまうので、 一つのディレクトリに CVS に入れたいものと入れたくないものがあるときはどうしようかと思ったんです。 この場合は、 ~/etc とかに移してそれを import するべきなのかもしれませんが。
____ l \ ―┼―ヽ \ | ――――― / | ゝ _/ / | / _」 l / || ヽ ―┼― l ヽ ┌―┐ ―┼― ┌―――┐ / ̄ ̄ ̄7| | ―― ―┴― _|__/ _ .| ┌┤ ――┼―― | | | ― 「 ̄ ̄ ̄ ̄| / | / ̄\ | | ̄ ̄ ̄| / | | / ― | | / |/ | 人| □ 」 / \ | | / ┌‐┐ | | | /| / ノ ヽ―――  ̄ ̄ ̄ ̄ヽ ├―――┤ / ├‐┤ ノ |_」 ヽ/ ヽ _/
unix的ではないが、FDでマークしてドバーッとcvs add、これ楽。
>>703 1. サブディレクトリを掘って、CVSで管理したいファイルをそこに移動
2. そのサブディレクトリをまるごとcvs import
3. サブディレクトリの中でMakefileを書いて、commit後にmake install
つーか過去ログ読め
707 :
名無しさん@お腹いっぱい。 :02/11/10 00:35
モジュール名の文字コードをUTF-8に変換して保存してくれるようなCVSに対するパッチは無いか? EUCに変換するとかあるが、結局問題があるから、いっそのことUTF-8のほうがありがたい・・ ファイルの中身を変換するのは、cvswrapperにnkfでやるから。モジュール名の対応なんとかしたい。
>>707 純粋に疑問なんだけど、なんでEUCだと問題があるの?
709 :
名無しさん@お腹いっぱい。 :02/11/10 02:54
>>708 だから、cvs import "ソース"(SJISコード) とかやるとリポジトリの"ソース"部分はSJISで その下のファイル名はEUCに変換されてたりする。
cvsのソースを見たが一筋縄ではいかない雰囲気。そんなのに手を出すぐらいなら全部UTF-8に変換してくれる、ちゃんとしたやつがほしいんです。
EUCでいいじゃんとか そういう文字を使わなきゃ良いじゃんですますとVSS(の方がまだまし?)に負けてる気がして悲しいのです。
sjis + cvs なんて使うなって思うんだけど。おとなしく vss 使ったらいいんでは? 使いなれたツールに愛着があるのは俺にも分かるけど、適材適所で選ばなきゃ。 >全部UTF-8に変換してくれる、ちゃんとしたやつがほしいんです。 UTFに変えればなんでも大丈夫ってわけじゃない。
>709 >708は > EUCに変換するとかあるが、結局問題があるから という部分のことを言っているんだと思うが、EUCに何か問題でも? UnicodeあるいはUCSにも問題があることは理解している?
>>709 > だから、cvs import "ソース"(SJISコード) とかやるとリポジトリの"ソース"部分はSJISで その下のファイル名はEUCに変換されてたりする。
これってマジですか? ファイル名がEUCに変換されてる?
で、ファイルを取り出すときに逆変換(EUC -> SJIS)されてるの?
どの実装の話でしょうか。きになるきになる。
713 :
名無しさん@お腹いっぱい。 :02/11/10 11:35
>>710-712 質問に質問で返すようなアホするまえにソース読んでみろや?
> これってマジですか? ファイル名がEUCに変換されてる?
WinCVSごった煮版
> で、ファイルを取り出すときに逆変換(EUC -> SJIS)されてるの?
この場合入れられても、取り出せません。
>>710 > sjis + cvs なんて使うなって思うんだけど
思うのは勝手だが、強制するなよ…。Win32 がこれだけ広まってる以上、
SJIS とも付き合っていかにゃならん人間も多い。
(もちろん 710 が SJIS なんか忘れて幸せな世界に住むのは自由だ。
それはそれで一つの見識)
715 :
名無しさん@お腹いっぱい。 :02/11/10 14:07
初めて知ったんだけど、「VSSはライセンス料が必要」なんだね… 会社のライセンスで使わされてたから気がつかなかったけど… しかし、サーバはファイル共有なデータベース管理(外に向けて開けない)だし、VSS用の設定情報がプロジェクトの内部に入ってたりするのは美味しくナイです。 cvsは、Win32版も出てるし、ライセンスはGPLだし、*一応*マルチプラットフォームな部分やセキュリティもある程度しっかりできる。 と、いろいろ考えるとやっぱりcvsのほうが将来性があると思うですよ・・・ んで・・・ SJISの問題なんだけど、WinCVSなどのWin32版のCVSではディレクトリ区切りが一部バックスラッシュ"\"で判断しているところがあり、それが問題ってことに気がつきました。 要は、バックスラッシュをやめてスラッシュで見るようにすれば可能かもしれませんね。大人しくソース弄ってみます… 最終的には、EUC系,SJIS系,JIS系,Unicode系いずれのクライアントでもレポジトリの文字コードをあまり気にせずに扱えるのが望ましいのでしょうけど… 難しそう…
>>715 cvsにも将来性はない。
将来性があるのはrcs
>>716 1995/06/17から更新の無いツールのどこに将来性が…
718 :
名無しさん@お腹いっぱい。 :02/11/10 15:54
>>716 是が非でもお聞きしたい!
rcsのどのようなところに将来性があるのでしょうか?
rcsを使ったことのない自分にはとても興味津々です。
>>716 せめて subversion とか言っておこうよ。今のところ、将来性 *しか* ないけど。
720 :
名無しさん@お腹いっぱい。 :02/11/10 19:59
俺が疑問に思ったことは、まさに 711 さんが言ってくれたことなんだけど…。
まあいいや。
>>719 そこそこ使えますよ。subversion。
ただ、日本語でログ書けないのが痛い…。
今はUTF-7とかにして無理矢理つっこんじゃおうとか思ってみたり(w
>>720 まだα版だし、今日明日の仕事には使えない。無い袖は振れぬというか。
>>713 俺は質問で返してないし(笑)。「?」が付いてりゃ質問ってわけでもないだろう。
>> これってマジですか? ファイル名がEUCに変換されてる?
> WinCVSごった煮版
CVS が悪いんじゃなくて、 WinCVS の実装がヘタレなだけじゃん。阿呆くさ。
>>714 別に強制したつもりはないけど?あくまで見解を述べただけで。「おとなしく vss 使ったらいいんでは?」で
俺にできる精いっぱいの提案をしたつもりなんだけどな。今度から誤解されないような日本語で書くようにするよ。
724 :
名無しさん@お腹いっぱい。 :02/11/11 00:15
>>723 > CVS が悪いんじゃなくて、 WinCVS の実装がヘタレなだけじゃん。阿呆くさ。
本当になんもみてないんだな?WinCVSの実装じゃなくて、knjwrpだよ。阿呆くさ。
ping 阿呆 してみたが見事に帰ってきたよ。
\(・∀・)/ デンパー
>>724 knjwrpって何ですか。古代えじぷと王の名前でしょうか。
728 :
名無しさん@お腹いっぱい。 :02/11/15 14:12
質問です。 cvs を使おうとすると、 poll: protocol failure in circuit setup cvs [checkout aborted]: end of file from server (consult above message if any) みたいなエラーが出てCVSが使えません。 1行目はrshのエラーだと思われますが、rsh でそのCVSサーバにログインすることは問題なくできます。 .rhostsもかいてます。 何か良くある原因などはございませんでしょうか?
保 FreeBSD-CVSweb(2.0.6) は、基本的にread permissionだけで annotateさせる事が可能みたいです(動きました) 守
cvs import の release って何入れてる? なんか、CVS使い始めたときに見た例にあったfirstをいつも入れてる。
% cvs import emacs FSF EMACS_21_2 とかそんな感じ。 firstってCVSで管理してなかったtreeをリポジトリに突っ込むって感じでしょ。
コミットメールを送れるようにしたら、commitする時に 次のような警告が毎回出ます。どうやったらなおるでしょうか? ネットで調べたところ PERL_BADLANG=0 に設定しろと書いてあった のですが、どこで設定すればいいのでしょうか? CVSのサービスを動かしているユーザの.bash_profileに書いてみた のですが、全然だめです。どうか、教えてください。 perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = "en_US", LC_MESSAGES = "en_US", LC_TIME = "en_US", LC_NUMERIC = "en_US", LC_MONETARY = "en_US", LC_COLLATE = "en_US", LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Please check that your locale settings "en_US" are supported and installed on your system. 嫁、そしてスレ違い
>>734 CVSの話なのでスレ違いじゃないと思うのですが。。。
CVSの話じゃないんだよ。 スレ違いっつーことはそういうことだというくらい 理解しる。
>736 いや、意外と CVS の話題かも知れんぞ。ログインして cvs commit する分には 個人の .bash_profile に書いとけば良いわけだが、リモートから inetd 経由で 使ってますとかだと話が変わってくる。 CVS 的に解決するなら、CVSROOT/notify にメールを送るように書いてあると思う けど、その先頭に env LANG=C とか付けたら? もちろん CVS 的に解決せずに /etc/login.conf みたいな OS 側の設定ファイルで対処する方法もある。 なんにしても、質問するなら「動作環境と設定ファイルの中身ぐらい晒せ」とは 思うけど。
>>737 | いや、意外と CVS の話題かも知れんぞ。
それがUNIXなシステムを設定する際の一般的な問題ではなく、
あえてCVSの話題だと主張するなら、その根拠を上げてからにせえよ。
perl の話でしょ。
740 :
名無しさん@お腹いっぱい。 :02/11/24 00:18
グラフィックデータなどバイナリーデータに向いたバージョン管理システムありませんか?
742 :
名無しさん@お腹いっぱい。 :02/11/24 00:40
>739 何を必死になってるんだ…
グラフィックデータ程度ならCVSに突っ込めばいいんじゃないかと。 ディスクは余分に喰うけど気にすんな。
745 :
名無しさん@お腹いっぱい。 :02/11/24 00:52
そうだけど、使いやすくて閲覧しやすいグラフィック用のフロントエンドがあれば結構使えるかも
>>745 差分とかもビジュアルに表示してくれると結構楽しいかもね
WinCVSやcvsweb、viewcvsなどではダメですか?
バイナリ差分だったら subversion じゃ?
>>746 差分をビジュアルに表示したいとなると、究極的にはファイルタイプごとに
違った差分ビューアが必要だな。
>>748 この間、FreeBSD portsからインストールしたsubversionでCybozuのDBの
バックアップを差分管理しようとしてみたけど、「差分」とは言えない
ぐらいsubversionのDBが大きくなった。
>749 バージョン管理ツール側では、そのためのインターフェースを提供してくれれば 良いような気はする。 差分のビジュアル表示はともかく、画像データだとサムネイル一覧表示とかは 欲しくない? cvs display -rRELEASE_1_0_0 -rRELEASE_1_1_0 foo.jpg これで RELEASE_1_0_0 から RELEASE_1_1_0 までの foo.jpg をずらっと表示 できる、とかさ。
>>751 cvsが画像を画面に表示するの?
それともHTMLみたいなものを吐き出すとか?
cvswebとかviewcvsみたいなものの仕事のような
754 :
名無しさん@お腹いっぱい。 :02/11/24 19:24
ImageMagickに渡せば良いような気が。
>752 パイプで繋ぐなり CVSROOT/XXX で使うプログラム設定するなり。CVS 自身にビルトインするのは、ファイルタイプの増加に耐えられないから 止めた方が良いと思う。
>>755 subversionだと、diffプログラムをplug-inできるから、そういうことも可能そうだね。
ドキュメントで読んだだけなので、実装されてるかどうか分からんが。
cvs serverが稼働するポートは2401って情報を 入手したいんですが、あってますか?
>>757 別に/etc/servicesでcvspserverを2401以外にすれば変更はできると
思うが。まぁ普通2401だってのはその通り。
>>758 レスありがとう。
FreeBSDのipfwで2401番への接続は許可してないはずなのに
なぜか'cvsup.jp.FreeBSD.org'に接続できちゃうんだけど。
ポートスキャンする以外にcvs serverが稼働してるポート
番号知るにはどうしたらいいの?
>>759 接続できちゃうのが困るなら tcpdump でもして調べとけや。
cvsup なら 5999/tcp 使うだろ.
>>760 5999だったのか。
anony ftp用に4000-65535に穴開けてたのが原因だった
みたいです。tcpdumpについてちっと勉強してきます。
>>761 むしろ cvsup と cvs の違いについて勉強してください。
つながってるんだったら何もtcpdumpまでせんでも、sockstatとか netstat -aで確認できるんでないかい?
764 :
名無しさん@お腹いっぱい。 :02/11/25 21:46
portrangeで50000-60000ぐらいを限定に開けとけ。
>>762-764 親切にありがとう。
全てのアドバイスを忠実に実行しようと思います。(・∀・)イイ!!
766 :
名無しさん@お腹いっぱい。 :02/11/27 00:50
>>743 「すれ違い」以外に訴えることが無いのか、言えないのか どっちかだとおもった。
ageてみた。
cvs update をしたときに、手元のファイルを勝手にマージしないようにはできないのでしょうか? そういうときは cvs status ですか?
>>767 cvs update -C
てかcvs -H update
status 見たら更新無くて (その間に更新されて) 安心して update ・・・ぎゃーマージされた。
やりたいことを考え直してみたんですが、 ・手元のファイルを勝手に書き換えられたくない ・リポジトリとの状態の違いを見たい …ってことはやっぱりstatusですね でも長くて読みづらいんだよなぁ
cvs -n update
>>772 cvs status | grep ^File
でいいんじゃないの?
>>772 漏れは
cvs status | grep Status | grep -v Up-to-date
を使ってるな。
776 :
名無しさん@お腹いっぱい。 :02/12/02 18:44
改行コードをCRLFからLFに変えようと思いました。 普通に変えてcommitするとdiffが大変になるので、 commitする前にリポジトリをLFに変えようと思うんですが、こういうことをしてもいいんでしょうか。
直接アクセスできるんなら可能ではある。 排他処理を万全にすることと、coしてあるファイルは一度消さないとupdateさ れないことに注意。
778 :
名無しさん@お腹いっぱい。 :02/12/12 10:43
CVSでチェックアウトしたファイルを コミットするまで他の人がチェックアウト できないようにする方法ありますか? 調べたんですがなさげな気が・・・・
>>778 無理。
* CVSを使わない
* CVSのやり方に慣れる
のどちらかを選びましょう。
>>778 CVSの想定する使い方に思いっきり外れる。
やってやれないことはないが。
cvs adm -l
cvs admin -l は commit の防止でしょ。
では最悪の方法を。 自分がcheckoutしたらリポジトリそのものをリネーム、commit直前に 元に戻す。毎回手打ちするのが面倒ならssh辺りでリモートシェルと して実行。
リポジトリを直接いじったら昔のやつが取り出せなくなってしまった
784 :
名無しさん@Emacs :02/12/13 11:22
Java のソースを CVS で管理させています。 commit したあとに自動的に build してやって作成した jar を特定のディレ クトリに収納しようと思っています。 はじめは $CVSROOT/CVSROOT/loginfo の中で cvs checkout してやって、そこ から build してやろうと思いましたが、 lock されているので cvs checkout が lock 待ちになってしまい、build できません。 $CVSROOT/modules の中で -i を使って commit したら実行するプログラムを 指定しようとしたのですが、これが module のトップからの commit しか受け 付けてくれないので、使えません。 commit 後、何かのプログラムを動かすようなしかけはないでしょうか。
>>784 ( sleep 5; hoge ) &
786 :
名無しさん@Emacs :02/12/13 13:40
>> 785 ありがとうございます。 その方法も検討していたのですが、これだと連続してコミットが行われた場合 sleep 5 してる間に対象のコミットではなく次以降のコミットに対して build してしまうことになりませんかね。 コミットの前処理が $CVSROOT/CVSROOT/commitinfo で出来るそうですが、 コ ミットの後処理ができるものはないでしょうか。 loginfo だと後処理という より、終了前処理ですよね。commit 完了後に動かしたいわけです。
>>786 ciしてbuildするラッパーでも使えば。
>>786 そこまで厳密さを要求するとなると、commit直後に手元でbuildするしかない。
789 :
名無しさん@Emacs :02/12/13 15:49
>> 787 ありがとうございます。このラッパーはどのように設定するものでしょうか。 >> 788 やはり自動では無理でしょうかね。。。。
>>789 Infoの「What is CVS?」「What is CVS not?」セクションも読んでみ。
791 :
名無しさん@Emacs :02/12/13 16:40
>> 790 ありがとうございます。え〜どれどれ、、、、 > CVS is not a build system. ズガ━━━( ̄□ ̄;)━━━ン!
792 :
名無しさん@お腹いっぱい。 :02/12/13 16:44
>>789 設定っつーか
#!/bin/sh
cvs ci "$@"
exec make
ぐらいの意味だけど。
Solaris 7 + cvs1.11にwincvsから繋ぐと cvs login: authorization failed: server yahoo.co.jp rejected access to /home/hoge/cvs for user hoge 等と出ます。ちゃんと/etc/passwd は$CVSROOT に置いたのにな。 サーバー側の設定に詳しいWebSiteも漁ってみたが、、、 たしけて
>>195 ちゃんとドキュメント嫁
$CVSROOT ではなくて $CVSROOT/CVSROOT
CVSROOT/passwd は /etc/passwd と同じフォーマットではない
>>795 そもそも/etc/passwdと同じで良いんだったら、CVSROOT/passwdはデフォルトのままでOKだよ。
>>778 ん〜 これは、どのようなユースケースでしょうか・・・思いつきません。
さらに、それが出来たとして「すでにチェックアウトしてた人」はどのように対処すべきなんでしょう?(勝手に消すか?うわぁ・・)
単純に認証を止めるとかいう手があります。(そのユーザに対して設定してあるpasswdを無効にする)
どっちにしろ「すでにチェックアウトしてた人」はど〜しよ〜もないですがね。
>>789 loginfoではロックファイルの作成/削除だけにしておき、
別プロセスでロックファイルを待ち合わせるループを組んで、
その中でcvs up -dAP && make というのはどうでしょう?
ロックファイルでなくFIFOとかでもいいけど。
800 :
名無しさん@お腹いっぱい。 :02/12/20 11:29
$cvs -d :pserver:hoge@localhost:/tmp/test/cvsroot login $cvs -d :pserver:hoge@localhost:/tmp/test/cvsroot co temp cvs server: Updating temp U temp/a.txt U temp/b.txt U temp/c.txt $cvs -d :pserver:ahe@localhost:/tmp/test/cvsroot login $cvs -d :pserver:ahe@localhost:/tmp/test/cvsroot co temp cvs [server aborted]: "checkout" requires write access to the repository CVSROOT/readersの内容 ahe hogeとaheは同一グループ 両方ログインできるが。。。 aheはcheckoutすらできず。 。。。checkoutすらできんもんでしょうか? 両方ともローカルで操作してます。
今日突然 CVS 中の 1 ファイルが壊れてた。ファイルやディスクシステムの異常じゃ なくてバージョン上の理由で矛盾が大量発生、CVS 経由で参照・更新不能、突如その ソースだけコンパイルエラー出まくり。結局 telnet で入って該当ファイルリネーム して、クライアントのファイルを乗せなおした (バックアップより新しかったので)。 自宅鯖で一人で使ってただけだから高負荷なんてはず無いのに、こんなこともある んだな CVS。
>>802 FUDか? 具体的な状況説明がなにもないな。
きっと、cvs update したら <<<<<<< foo hoge ======= fuga >>>>>>> 1.2 こんなんなっちゃったんだよ。
> CVS 経由で参照・更新不能 っていいつつも、 > その ソースだけコンパイルエラー出まくり ってどういう状況だったの?参照できない(ファイルが見られない)なら そもそもccがコンパイルに入る以前にエラーを出すんじゃないかなあ。 いずれにせよ、ファイルが壊れたと思ったら、RCSのコマンドまで降りて 調べてみる価値があると思う。復活できるかもしれないし。
ごめん、CVS は本当に使ってるだけであまり詳しくないのよ。 1. 全ソースチェックアウトしたら突如 1 ファイルで大量のコンパイルエラー 2. なんだと思って別マシンでチェックアウトを試みたが「バージョンの?? (忘れた)」で出来なかった 3. やっべえと思って CVS パーティションに e2fsck を実行したが何も発見できず 4. 該当の ,v ファイルを覗いてみたが普通のテキストファイルだった (意味は分からんが) 5. しょうがないので ,v ファイルをリネームして最新版をチェックイン Sun Cobalt Linux 2.2.16C33_III+VPN cvs-1.11.1p1-6.2.C1r4
なるほど、こいつぁFUDだぃね。
>806 > 2. なんだと思って別マシンでチェックアウトを試みたが「バージョンの?? (忘れた)」で出来なかった その段階で書き込めば、何か別の手段があったかもしれんね。co できない状況 っつーと、何だろうね?
>>809 >>806 5. しょうがないので ,v ファイルをリネームして最新版をチェックイン
ってことだから、適当な,vって名前にすれば確認可能と思われ。
>>808 せめて連休中になんらかのreplyなきゃそう判断するしかないな。
維あけまして 持おめでとうございます
812 :
名無しさん@お腹いっぱい。 :03/01/14 00:15
使い方はなんとなくわかったが、運用を考えると悩むな。 (結構あたりまえの使い方しかしてないが) そのうち質問するんでよろしく
(^^)
815 :
名無しさん@お腹いっぱい。 :03/01/27 03:59
rootが動かすrubyスクリプトを書いていて、権限を落とすためにProcess.euidを 変更してるんですが、そのなかで system("cvs ci ...") すると、なぜかログには 変更したuidではなくrootと記録されてしまいます。 euidではなくuidを変更すれば、rootではなくそのuidが記録されますが、 あとでrootに復帰したいのでeuidを使いたいのです。 仕方がないので、 fork do Process.uid = 500 exec("cvs ...") end Process.wait のように子プロセス内でuidを変更するようにしてみましたが、どうも 納得いきません。cvs はどこで自分を実行しているユーザidを見てる んでしょう?
>>819 getuid()で見てれば当然そうなると思うが。
>819 fork 後に uid 変えるのが何故納得いかないと? それが最も自然な解だと思うが
819はuidの管轄する機能について正しく理解していない。
誰が、というidentityの問題と、
どの権限で、という問題をいっしょくたにしてる。
seteuid()は後者のみを一時的に変更するものなんだから
identityを参照すると元のユーザになってるのは当たり前。
前者はその趣旨からいって当然だが、fakeする操作は用意されていない。
元のuidを保持しつつそれぞれのユーザに変身して振る舞うには、
>>819 のようにforkするのがセオリー。sshd/rshd/telnetdはじめ
そういう処理が必要な各種デーモンは昔から皆そうしてる。
>>823 詳しい解説ありがとうございます。納得いきました。
今作っているのはsshd/rshd/telnetdのように個別ユーザーに対応する
タイプのデーモンではないので、一時的に権限を落とすために、という
発想で seteuid() を使おうと思ったのでした。子プロセスを起動しない
ぶんリソースを消費しないし、などとも思ってたんですが、ちょっと調べて
みたら、必ずしも親プロセスの全メモリをコピーするわけじゃないんですね。
>824 > 子プロセスを起動しないぶんリソースを消費しないし、などとも思ってたんですが system(3) は、子プロセスを生成して実行する関数である、ということは分かっているよね?
そろそろスレ違いの悪寒。
>>825 うん。
Process.euid = 500
...(ユーザID500権限で実行する諸々のコード)
if なんとか
fork do # 実行するときもしないときもある
Process.uid = 500
exec("cvs ...")
end
end
と、
fork do # 必ず実行する
Process.uid = 500
...(ユーザID500として実行する諸々のコード)
if なんとか
fork do
exec("cvs ...")
end
end
end
の違いってことです。
# スレ違いスマソ。
VCでCVSつかうためにCVSのバージョン管理COMインターフェイス作るって話を 昔聞いたんですが、最近はどうなってるんですか?
830 :
名無しさん@お腹いっぱい。 :03/02/15 06:49
LinuxのCVSをセットし、プログラムのソースを管理しています。 ユーザがCVSに新たなプロジェクトをImportするとリポジトリの 中の該当ディレクトリ以下の全てのファイルのパーミッションが -r--r--r--になってしまい、他のユーザがcheckoutできない状態です。 CVSでImportしたときのデフォルトのパーミッションってどう設定すれば よろしいのでしょうか。厨ですみません。
>>830 リポジトリのディレクトリの所属グループと書き込みパーミッションを
変更すればいいはず。
ユーザ taro, hanako が共通して所属するグループ foo を /etc/group
に作り、
chown -R taro:foo /home/taro/cvs/hoge
chmod g+w /home/taro/cvs/hoge
しておけば、hanako も cvs -d /home/taro/cvs co hoge でチェックアウト
できるんじゃないかな。
つか、cvsグループ作って
>>831 のようにするのがお約束だと思ってたが。
833 :
名無しさん@お腹いっぱい。 :03/02/15 08:32
>>831 どもです。
一旦Importしたリポジトリのファイルをおっしゃるように手動で設定
しなおせばアクセスできます。ですが、それをユーザが何かをImportするたび
(同じリポジトリ内に新たなディレクトリを追加するということは
よく行われます)にパーミッションの再設定を行うのが面倒なのです。
CVSでリポジトリを登録する際に使われる「デフォルトの」パーミッション
の変更方法を知りたいのです。
アドバイスをどーぞよろしくお願いいたします。
>>833 それなら、個々のリポジトリでなく、リポジトリのルートとなる
ディレクトリのグループとパーミッションを、
>>831 のように設定して
しまえばよいのでは。
共同作業グループごとにリポジトリのルートを作らなきゃいけないけど。
>>831 Linuxだとてっぺんのディレクトリを g+ws すると、その下に新たに作った
ディレクトリも自動的に同じgroupになって、かつgroup writableになるん
じゃなかったかな。
>>834 +sは必要ないのでは。OSではなくCVSが面倒をみているので。
自信ないのでソース見てみた。 ふつうは options.h(.in) で UMASK_DFLT が 002 になっているはずなので、 親ディレクトリが 0775 (drwxrwxr-x) ならリポジトリも 0775 になる。 環境変数CVSUMASKを002以外、たとえば 022 に設定すると、 親ディレクトリが 0775 (drwxrwxr-x) でもリポジトリは 0755 になる。
>>836 >>831 はpserverでなく各ユーザに直接リポジトリを操作してもらって
いるんじゃないかな。
info cvs で「File permissions」を読むとLinuxは「On some systems」に
該当するようだけど、最近のcvsはchown(2)するようになっているのかな。
スマソ、用語が混乱してた。 「ルート」「親ディレクトリ」→「リポジトリ」 「リポジトリ」→「各モジュールのディレクトリ」 に訂正します。
>>836 だから、+sは必要なんだよね。
じゃないと、group ownerがその人のprimary group(っていうんだっけ?/etc/passwdにかかれてるgid)になっちまう。
>>840 それは、ユーザがディレクトリに設定されたグループに所属していない
場合でしょ?
プライマリじゃなくても、そのグループにユーザが入っていれば、
新規作成時には親ディレクトリのグループがひきつがれるよ。
>>841 …違った。スマソ。Linuxでは確かに +s しないとグループが引き継がれない。
>>842 うたぐり深いんだから… 。。・゜・(ノД`)・゜・。
皆さんアドバイスありがとうございます。ですがまだだめです。。。 /var/cvsrootに対して #chmod g+wr /var/cvsroot #ls -ld /var/cvsroot drwxrwsrwx 16 root devgroup 4096 Feb 15 01:45 cvsroot (テスト用にもともとパーミッションをゆるく設定してありました) として、新たなモジュールhogeをImportしました。するとhogeディレクトリ のパーミッションは #ls -ld hoge drwxrwsr-x 3 myacount devgroup 4096 Feb 15 01:45 hoge となるんですが、その下にあるファイルmain.cpp.vのパーミッションが -r--r--r-- となっています。何かおかしいでしょうか。。。
>>844 *,v ファイルのmodeが 444 になるのは正常です。
>>844 > -r--r--r--
それは気にしなくて大丈夫。ためしに複数のユーザーで checkout, commit
してみ。
847 :
名無しさん@お腹いっぱい。 :03/03/01 11:13
wincvsを使ってるんですが、設定ファイルの保存、ロードのタイミングが 良く分からなくて困っています。 現在リモートのLinuxに複数のCVSROOTを作成し、pserverを介して それぞれpasswdファイルを使用しているのですが、 wincvs上の表示モジュールを変更したときに適切にパスワード を変更するようにしたつもりが、何かの拍子にpserverが "used null password"みたいな感じのエラーメッセージを返すように なってしまいます。 モジュール毎のパスワードってどのファイル(レジストリ?)で管理されて どのタイミングでそれが変わるのでしょうか?
一般的には~/.cvspassだが。
WinCVSだと$HOMEの位置をダイアログで設定できたはずだが。
いろんなツール使って開発しているので、改行コードも文字コードもばらばらで バイナリファイルまで混じってるんですが、こういう場合CVSで管理するのは難しいですか?
>>850 一人で開発してるのなら問題ないよ。
共同で開発しているのなら、このファイルは文字コード・改行コードは
何々、ととりきめておかないと混乱する。Windowsの人がいるなら、
cygwin版を使って、ディレクトリはバイナリマウントすべし、とか。
バイナリファイルも -kb オプションつければ問題ない。
>>851 本当に、厨な質問ですいませんが、
> cygwin版を使って、ディレクトリはバイナリマウントすべし、とか。
これを行うと、どういう効果が期待できるんでしょうか?
当方軟弱なことに WinCVS を使用しているもので...
>>853 改行コードはWin系ならCRLFだしUnix系ならLFなわけだが、これら
を混在させると色々不幸になるので、Cygwin版のcvs & バイナリ
マウントを使ってUnix系のLFに統一させるという事。
もっともWinユーザにコマンドライン版cvs触らせたくないとか、Win側
の糞ツールがLFのみに対応してないとかだと駄目だけど。
Wincvsは改行コードがLFだと怒られたような。
856 :
名無しさん@お腹いっぱい。 :03/03/03 20:48
CVSサーバ : Solaris クライアント : Windows 2000 で、環境を構築したいんですが、 お勧めのHPありますか? もしくは書籍でもかまいません。 サーバもSolarisでなくてもUNIX系のOSで あればかまいません。 よろしくお願いします。
>>856 HPは情報が少ないし、Solarisにしておけばいいとは思いますが。
>>857 すいません、HPってホームページのことです。
言葉足らずですいません。 読み直したら何を聞いてるのかわからないですね。 環境構築するのに参考になるホームページとか 書籍があれば教えていただきたいとおもいます。 よろしくお願いいたします。
やっぱ、ここですか
>>858 ホームページって「Home」ボタンを押したときのページだと思いますが
それをお勧めとか言われても。
ネタだったらもっと上手く書いてくれ。
864 :
名無しさん@お腹いっぱい。 :03/03/04 01:03
懐かしいね。kuno さんまだ編纂をつづけてるのかな もってるスキル(Unix の基礎知識は? 簡単に他人がお薦めできるようなものはありません
865 :
名無しさん@お腹いっぱい。 :03/03/04 07:17
>>865 その辞書は間違ってるね。
あまりにも誤解が広まってしまったので
「スタートページ」という言葉を作ったブラウザもあったりするが、
それでもボタンは「Home」だったり。
グランドに埋め込まれた神聖なる五角形だっけ?
870 :
名無しさん@お腹いっぱい。 :03/03/04 19:54
>>868 つまずいてるのではなく、
これから導入してみようかと思ってます。
で、まずはWEBか書籍でいろいろ調べてみようと。
とりあえず、
・サーバはUNIX系(出来ればSolaris)
・クライアントはWindows
・バイナリも保存
(Visual Studioのプロジェクトとか、
JAVAのクラスファイルとか)
ぐらいわかればいいんですが。
ようは導入事例が知りたいってことでは?
>>871 仕事の合間に環境構築出来る程度のものかどうかを
まず知りたかったんです。
環境構築にどの程度の作業量が必要かわからないもので...
>>870 VisualStudioのプロジェクトファイルは中身テキストだったと思うが。
バイナリなのは.icoや.bmp等のリソースと、VisualStudioが勝手に
作る中間ファイル(..apsとか.ncbとか)だけど、中間ファイルなんか
ソースからいくらでも再作成できるんだからバージョン管理する
必要なんか無いし。Javaの.classも同様。
>>873 どの程度の作業量になるかは本人のセンス(「分からない事の
調べ方」を知っているかどうか)次第。
うだうだ書いてる暇で検索猿になって情報だけ集めとくとか、
一発玉砕覚悟でやってみるとかすりゃあいいだろに。
875 :
名無しさん@お腹いっぱい。 :03/03/04 23:05
>>874 皆さんは、DLLとかをタイムスタンプでは管理してないの?
うちの会社はその辺厳しいんだけど。
汎用機上がりの上司が多いのでコンパイル時刻にうるさいんです。
テスト結果とモジュールのタイムスタンプが逆転してると再テスト...
作業量は本人のセンスだから、
情報仕入れてどの程度で出来るのか知りたいんです
って書いてたつもりなんですが...
一応、仕事なんで玉砕はなしってことで、
出来そうだった「やる」、
結構かかりそうだったら「それでもやりますか?って聞く」、
無理そうだったら「やめる」。
簡単に教えてもらえると思って書き込んだんですが、
いろいろと聞かれるもんで「うだうだ」と書くことになってしまいました。
確かに無駄な時間をすごしてたのかもしれませんね。
ということで、これでうだうだ書き込むのは終わりにします。
いろいろ勉強になりました。
どうもありがとうございました。
CVSはタイムスタンプなんて保存してくれないよ。
>>875 ここで聞くのあきらめちゃったわけね。
ま、賢明だね。
答える気も無いのにうだうだ言ってる奴にまで
いちいちレスしてるような素直な奴は
2ちゃんで情報収集するのやめといたほうがいいよ。
ホームページの定義とか、
バイナリファイルの管理とか
関係ないことばかり指摘されてて
はたから見ててかわいそうだったよ。
878 :
名無しさん@お腹いっぱい。 :03/03/04 23:43
>>876 875じゃないけど、
CVSつかうとタイムスタンプ変わっちゃうの?
まあ、確かにタイムスタンプなんてたいした問題じゃなくなるかもしれないが...
試してみたいけど履歴管理って結構面倒だもんなあ。
必要性に迫られないとやる気起きないな。
>>878 ,vファイルとか、ワークディレクトリのCVS/Entriesには入ってるみたい。
rcsだと-Mオプションをつければタイムスタンプをcheckin時のものに
直してくれるけど、cvsだとどうかな?
>>878 (´-`).。oO(ネタだろうに・・・)
>>875 ファイルのタイムスタンプなんかPC間の転送で簡単に狂っちまうん
だから、そんなので管理しようとする事自体ナンセンスだと思うがねぇ。
Winバイナリならバージョンリソース使うのが一般的だし。
CVSというかRCS的なアプローチでは
static const char *cvsid = "$Id: hoge.c,v 2003/03/05 01:48:30 nanashi Exp$";
とか埋め込んでおいて、identで抽出ってのはよくやってる。(これで
タイムスタンプが狂ったバイナリのバージョン調べるのに助けられた
事も何度かある)
>>875 > 皆さんは、DLLとかをタイムスタンプでは管理してないの?
> うちの会社はその辺厳しいんだけど。
> 汎用機上がりの上司が多いのでコンパイル時刻にうるさいんです。
> テスト結果とモジュールのタイムスタンプが逆転してると再テスト...
そういう仕事環境では導入を提案しても蹴られるに一票。
やるとしても、まずは個人的に1か月ぐらい試してみて、それからでしょう。
ネット情報だけに頼って提案まで持っていくこと自体おかしい。
>>873 「環境構築」が何を指しているかよくわからないが、
CVSをインストールして既存のファイルをリポジトリに入れる
ことを言ってるなら、そんなもの半日程度で終わるでしょう。
そっちよりも運用方法を考えるほうが時間がかかるし、
時間をかけるべき。
884 :
名無しさん@お腹いっぱい。 :03/03/05 09:44
タイムスタンプの管理はmakeの仕事、と言ってみる。
885 :
名無しさん@お腹いっぱい。 :03/03/05 12:43
anonymous cvsからファイルを落していて分からないことがあります。 CVS/Entriesに書かれていないディレクトリが存在します。 $cvs update ではなかったディレクトリが $cvs co XXX としてやると作られました。 個人的にEntriesとはその下のディレクトリの状態を 正確に表現していると考えていたのですが、それは違うのでしょうか? また、リポジトリの最新と完全に同期させるためにはどうすれば いいのでしょうか?
>>885 % cvs update -d
という答えでいいのかな?
>>886 ありがとうございます。
上のようにやったらCVS/の下のファイルも更新されました。
-dオプションはCVSROOTを指定するためだけに使うものと
考えてましたが、もしかしたらCVS/の下のファイルを更新する
っていう意味もあるんでしょうか。ちょっと調べてみます。
どうもありがとうございました。
cvs [こっち] コマンド [そっち] こっちとそっちでは同じオプションでも意味がちがう
>>881 そもそもこっちでコンパイルしてるときに他の奴がciしたら、次にcvs upした
ときに再コンパイルされなくなってしまう。タイムスタンプでの管理なんて無
意味。
まあまあ。汎用機なんつーロクな道具のなかった旧石器時代の先人の 知恵なんだろうよ。現代から見れば迷信レベルなわけだが。
>>891 そういう人とうまく関係を保ちながら発想の転換を促すのって
大変だけど大事なことだよ。
大事かも知れんが、とっても大変。
894 :
名無しさん@お腹いっぱい。 :03/03/06 21:41
>>875 UT完了時にCVSにソースを登録しといて、
UTで使用したバイナリをIT、ST、本番へと反映すればいいことじゃないの?
なんの問題も無いじゃん
そしたら、開発時のタイムスタンプたいした意味を成さなくなるんじゃないの?
UT完了時のソースをCVSに登録して、
IT時にチェックアウトしてコンパイルとか馬鹿なことしないだろ、普通。
>>894 UT, IT, STって略語なんでしょうか(「何とかテスト」)?
Unit Test Integration Test System Test かな?
>>896 そのとおりです。
基本的な言葉ではないのですね。
金融系の仕事ばかりしてますが
どこもUT,IT,STって使ってたもので、つい。
>>894 >UT完了時のソースをCVSに登録して、
>IT時にチェックアウトしてコンパイルとか馬鹿なことしないだろ、普通。
「普通」はね。
CVSの使い方が分からんと言って、わざわざ人と手間をかけて
人間CVSやらせてるアフォな現場もあったりするよ。
(って今の俺の現場がまさにそう)
もちろんとてもじゃないが信用できんので自分のグループ内部
ではCVS管理してるが、それだけだと最終的にリリースされた
バイナリが正しい物かどうか保証できないので(タイムスタンプ
も奴らがビルドした時間になっちゃうし)、
>>881 のようなマーカー
埋め込みは必須。
C/C++みたいにモジュール間の結合依存度が高い言語だったら
それでも破綻してるだろうな。(Javaはその辺楽だ)
漏れもRCS IDからタイムスタンプをセットするツールってのは作ったことがある。 アフォくさいけど、そういうのを要求するDQN会社もあるんだよな。
単に漏れが想像できないだけなんだが(ずっとJavaで開発してるし、そんなに大規模じゃないので)、 > UT完了時のソースをCVSに登録して、 > IT時にチェックアウトしてコンパイルとか馬鹿なことしないだろ、普通。 これってダメなの? コンパイルする度に挙動が変わるようなバグが潜んでいる可能性があるから? 個人的にはそういうバグは潰すべきだと思うが。 それとももっと深遠な理由があるのかなぁ。大規模開発は想像ができん。。
901 :
名無しさん@お腹いっぱい。 :03/03/08 02:29
>>900 UTでつかったバイナリを使えば
中身が同じってことが保障できる。
IT時にコンパイルしたら
CVSのSTATUSで
UTに使用したバイナリとITで使用したバイナリが
同じソースからコンパイルされたことを
いちいち証明した上でテスト結果をまとめないといけないじゃん。
面倒だよ。
それに、カットオーバーの異なる2つのプロジェクトが
同時に同じソースいじることが時々あるけど、
そのときはどうするつもり?
ソース修正(1)→UT(1)→IT(1)
→ソース修正(2)→UT(2)→ST(1)→本番反映(1)
→IT(2)→ST(2)→本番反映(2)
みたいな流れになったときとか。
>>901 勢いよく説明 (反論?) しているけど、
UT、IT、CVS、STATUS 全て全角で書いちゃう
センスはいかがなものかと...
903 :
名無しさん@お腹いっぱい。 :03/03/08 04:30
>>902 901の書き込みは全角使っていること以外は
あってるということですか?
>>902 つまんないつっこみなんかいいから901の内容についての意見を聞かせてよ。
くだらない煽りいれるぐらいなら書き込まないでくれる?
「...」を半角でかかれると見えにくいんですが...(笑
個人的にはシステムテスト前に次の単体テスト終わってるってのが
気になるんですが、それってよくあることなの?
あまり無いと思いますが、
システムテストで問題発覚!とかだとどうなるんでしょう?
CVSの話からずれてるかもしれないけど、気になったものでsage...
>> 904 > 「...」を半角でかかれると見えにくいんですが...(笑 いや、別にそこは無理して見なくてもいいよ。 というつまらあい煽りはもうやめます。ごめんなさいね。
>>901 > CVSのSTATUSで
> UTに使用したバイナリとITで使用したバイナリが
> 同じソースからコンパイルされたことを
> いちいち証明した上でテスト結果をまとめないといけないじゃん。
> 面倒だよ。
じゃあ逆に、保存しているバイナリがUT完了時のものだとどうやって
証明する?
> それに、カットオーバーの異なる2つのプロジェクトが
> 同時に同じソースいじることが時々あるけど、
> そのときはどうするつもり?
それってCVSのメリットが最大限活かされる局面なんでは?
ていうか、
>>894 って要はアリバイ作りの発想なわけで、
開発全体の成功には後ろ向きだよね。
3点リーダーは2マスだ!
就職活動でNTTComのES書いたけど全部全角で書かないといかんかった。 全角って大事だな
しかし、勝手な略号使うのは勘弁して欲しいものです
略号は特定のコンテクストと共通知識を共に背景として備える場合のみ、
意図通りに理解されることを期待できるものだからね。
>>909 のESはエントリーシートのつもりなんだろうけど
就職活動と関係ないところで使っても正しく理解される保証がない。
ESをエントリーシートと解するという知識は、
いまだ就職と関係ない学生はもちろん、そんなもの書かずに就職する人間にも
期待できないから。
少し前まで秋葉原マップを見てた俺は、最初 engineering sample かと思ったよ。
ちなみに就職活動方面でESをエントリーシートと解することを一般に期待できるかどうかは知らないが。
こういう人間が就職すると、社内だけしか通用しない独自略語や用語を
外でもたれ流しちゃう香具師になるんだろうなあ。
912 :
名無しさん@お腹いっぱい。 :03/03/08 13:12
>>907 ・単体テスト終了
・結合テスト開始
・協力会社のヤシが単体テスト時にケース漏れで気づかなかったバグを発見
・コソーリ修正してコンパイル
・修正したものでシステムテスト開始
(協力会社のヤシしかそのことを知ってる人間はいなかった)
・システムテスト終了
・本番反映直前に発覚
って、ことがあって相当問題になったんですが、
ダメダメなヤシしか雇えないようなうちの会社では
アリバイつくりでも何でもいいので
問題の出にくいやりかたを考えないといけません。
皆さんは、開発〜テスト工程でCVSをどのように運用してるのですか?
規約とか、標準化とかあったら知りたいです。
913 :
名無しさん@お腹いっぱい。 :03/03/08 13:19
>>912 ハァ?
ここのみんなは性善説の上に成り立ってる運用方法しか使ってないじゃねえの?
スレ読んでればなんとなくわかるじゃん。
そんなヤシ雇う方がバカ
ぐらいのレスしかつかねえ〜つ〜の。
自作自演ハケーン
915 :
名無しさん@お腹いっぱい。 :03/03/08 13:41
やめとけ。CVSに限らず使う奴がダメダメならなんでもダメ
916 :
912=913 :03/03/08 13:43
917 :
名無しさん@お腹いっぱい。 :03/03/08 14:46
CVSッて何よ?
>>917 computer-controlled vehicle system
(コンピューター制御自動運転輸送システム)。
unixの技術がコンビニを支えていまつ。
919 :
名無しさん@お腹いっぱい。 :03/03/08 15:50
>917 CSV の typo です
で、
>>912 に対する回答はないのかい?
なんだみんな厨か
922 :
名無しさん@お腹いっぱい。 :03/03/09 00:04
>>921 だから、913の書き込みに行き着くんじゃないの?
>>912 > ・コソーリ修正してコンパイル
> ・修正したものでシステムテスト開始
これができてしまったということは、テスト対象のバイナリを、
担当者が勝手に置き換えるとことができたということで、多分、
ここがまずいのでしょう。
単体テストが終了したら、ソースにタグをつけて、バイナリ一式を
スナップショットとしてセンタに登録し、勝手に書き換えることが
できないようにし、以降のテストは、それらのバイナリをテスト対象
にすればいいと思います。
# 好みによっては、「テスト対象のバイナリは、CVS でタグがついて
# いるソースから、再生成したものを利用する」という方針でもよい
# と思います。
一般に、テスト工程で成果物の管理をきちんとするには、まずは、
CVS のタグを用いるなどして、テスト対象のソースの版、テスト
プログラム自身の版を明確にし、それをきちんと記録に残すこと
だと思います。
924 :
名無しさん@お腹いっぱい。 :03/03/09 01:44
>>923 結局はバイナリを管理するということですか。
>>894 の話に近い考え方ということになるんですか?
ソースとバイナリを別に管理する必要があるということ?
コンパイルもコンパイルサーバで行う会社もあるみたいですが。。。
ソースを登録してその登録したソースをコンパイルして
作成されるバイナリをそのまま登録してしまうという。。。
(VisualStudioでしたが)
925 :
名無しさん@お腹いっぱい。 :03/03/09 03:49
いまだにバイナリを登録するなんて開発スタイルをとっているところ があるのか。それは、はっきり言ってお勧めできない。 基幹系みたいな重要システムの場合、リリース管理専任チームがいて、 リポジトリにコミットされているリリース・ブランチの内容を、 リリース管理チームの責任下で定期的にフルビルドする。これが常識。 当然、バイナリを保存しておくようなリリース管理はしない。 そういうやり方じゃなくて、正しく動作するバイナリが、リリース 管理チームの定義した環境下で、いつでもソースから正しくビルド できることを保証することが最も重要。 そうでないと、障害対応の段階になって、同じバイナリを作成して 再現することさえできないなどという、最低の状況が生まれる。
926 :
名無しさん@お腹いっぱい。 :03/03/09 04:30
>>925 「リリース管理専任チーム」がいるのが常識?
そんな奴雇ってる金なんてないんだが。
2000〜3000万のプロジェクトで
そんな奴ら雇ってたら赤字なんだけど。
その程度の規模の仕事は非常識か?
軍事や生命にかかわる分野の開発ではバイナリに対してテストし管理 するのが普通だし、金融基幹系などでもやってるところはやっている。 ソースありきの管理は「コンパイラにバグは無い」「OS にバグはない」 という前提があって始めて成り立つが、本当にクリティカルな分野は そういうわけにも行かない。
>>925 スマソ。
基幹系って書いてたね。
俺は、基幹系なんかやってないんだよ。
中小企業から開発頼まれてるだけ。
バイナリ登録がお勧めできないのなら
どういう運用がお勧めか聞きたいんだけど。
>>927 925は、「リリース管理チームが、任意の時点のバイナリを常に再現
できる (リリース管理チームのバイナリ作成環境がきちんと文書化
されており、ソースコードのみならず、コンパイラやOS、パッチの
レベルも含めて完全に再現できる) 」ということであって、927で
行なっているレベルの保証よりも、より強力なレベルの保証である
ことに気づいて欲しい。当然のことだが、正式なテストは、常に
リリース管理チームが作成したバイナリに対して行なわれる。
繰り返しになるが、927のような開発形態は、テスト済みの筈の
モジュールにバグが発見されたり、仕様に変更が生じたり、あるいは
システム全体に関わる定数の変更の結果、モジュールの再コン
パイルが必要になった場合に、破綻する。
つまり、クリティカルな開発において、より信頼性が高いのは
925の方なんだ。
cvs は、バイナリのバージョン管理には、あまり向いてないから、 cvs を使うのはソースに関してだけにして、バイナリに関しては 別途登録管理すればいいんじゃない? あと、他の人も書いてるけど、登録されたバイナリの判別を日付 でやるのは意味ない。日付なんて、ちょっとした操作で簡単に 偽造できるんだから。 もし厳密に管理するなら、登録したバイナリのチェックサムを 記録しておいて、それを比較するのが良いと思う。と言っても、 昔ながらのチェックサムやCRCは、やはり偽造が可能なので、 md5 とか sha1 とかいとかいった、偽造が困難な値 (いわゆる secure hash 値) を登録管理するのが良いと思う。UNIX 系 OS だと、そのものずばり md5, sha1 とか、digest とか、そういう 値を登録するコマンドは標準でついていることが多いけど、 Windows でもフリーでいくらでも転がっていると思う。 チェックサムの記録の管理には、cvsを使ってもいいかもしれない。
>>929 いやいや、誰もソースや環境の管理しねーとは言ってなくてさ。
まぁいいや、適当にオナニーしててよ。
ファイルシステムをテープに固めて管理するのが一番信頼性が高いという 結論がでますた。
>>931 素朴な疑問なんだが、だったらなんでバイナリ登録する必要があるの?
いつでも厳密にソースから同じバイナリが再作成できるんだったら、
登録管理する意味ないじゃん。
素人考えだと、手動でバイナリを登録管理するよりも、毎回フルビルド
した方が安全な気がする。モジュール間にあんまり気づかないような
依存性があった場合、手動のバイナリ登録だと、依存性に気づかずに
バイナリの登録更新を忘れてしまうんじゃないかな。実際、昔の
RPMで、何度かこれで痛い目にあってるんだよねぇ。
> いつでも厳密にソースから同じバイナリが再作成できるんだったら、 できる保障がないからだよ。何かの要因で完全なバイナリが再現できな くなったら、汗屋呼んでバイナリの再検証、そしてテストやり直し。バグ フィクスならいざ知らず、再コンパイルしたら違うバイナリになった程度で そんなリスク負えるのかって (エンドユーザアプリの話じゃないぞ)。
まぁ話の前提の分野が違うので無視してくれ。俺も C/C++ や Java で やる開発に来てからそんなシビアなバイナリ検証なんてしてないし、 最近はずっと CVS でソースレベル管理だし。
937 :
名無しさん@お腹いっぱい。 :03/03/09 06:00
>>929 だから、金掛けずにできないもんですかねえ。
リリース管理チームとかに掛けるコストが無いんですが。
金かけないとCVS使ってもまともな品質管理は出来ないの?
だからテープ最強だっての。
939 :
名無しさん@お腹いっぱい。 :03/03/09 06:21
>>938 それだったら、CD-RとかZipの方が安上がりだったり...
>>935 定期的にフルビルドしてるなら、前回分のフルビルドだけは残しておいて、
あとはバイナリを比較するだけで、厳密に同じバイナリを生成できること
を、完全自動で保証できるんじゃない? 簡単そうな気がするけど…
まともな品質管理できるかどうかは使う人にかかってると思うが。 そういう意味で CVS はただの手段だよ。工程管理/品質管理について いろいろ調べてみるといい。特に流通・製造・建築分野のはソフト ウェアより歴史が長いだけあっていろいろ得るものがある。逆に ソフトウェア側の管理本とか最新ネタ/情報キーワードちりばめた だけで統計的な論議を無視してたりする。
ま、でもそういうプロジェクト管理技術をソフトウェアに持ってくる のは殆んど無理ぽだったりするけどね。たとえば土木建築系で聞くよ うな、設計と施工を別の業者にやらせるなんて、現状のソフトウェア 開発では墓穴掘ってるとしか思えない。 設計業者がオオボラ吹いて大風呂敷広げて、おまけに穴だらけで実装 不可能な設計内容を残してトンズラして、実装担当が泣きながらデス マーチでなんとかするって、良くある話だしナ。 ちゃんとした設計ができて当たり前の土木建築の世界と、設計自体が 困難で、実装段階での見直しが不可欠なソフトウェアの世界は、全然 違うよ。
>>940 実際にトラブルがあったら、そのバージョン (もっと言えばその社に
納品したバージョン) レベルでバイナリを検証しなければいけない
んだよ (もちろんソースも検証するけど)。
なんか話の流れ見てると
CVS はバイナリが苦手だから乗せるべきではない。
が
バイナリレベルのバージョン管理は不要。
ってことに飛躍してるようだが大丈夫か?
>>942 それは公的機関がソフトウェア設計を管理していないからでは。いや、
みずぽじゃないけどいい加減マジで何とかならんかな。
良く分からないんだけど、925が言っているのは開発段階での バイナリの管理であって、納品物ないし本番用のバイナリに ついては、当然バイナリの保存管理はしてるんじゃないの? っていうか、基幹系の開発で、そういうレベルの管理をして ないなんて、それこそ信じられないけど。
>>944 大規模ソフトウェアの設計っての難しさって、公的機関が
成果管理すれば解決するような簡単な問題じゃないと思い
まつ。たとえばISO9001をソフトウェア開発に導入して、
文書上でISO9001とのツジツマを合わせる作業のために
余計デスマーチがひどくなってるなんてのを見聞きする
につれ、公的機関が出てきたら、むしろ悪化すること
間違いなしっていう悪寒。
そういわれりゃそうだな、失礼
>>946 うん、だからそうできるまで業界と技術が枯れて来ると良いなぁと
いう希望。その頃には飽きて別分野行ってると思うが。
949 :
名無しさん@お腹いっぱい。 :03/03/09 07:34
なんか話が大規模開発の話ばかりですが 皆さんは大規模開発してる人ばかりなんですか?
こんな時刻に起きているのは、大規模開発のデスマーチで 徹夜中の連中ばかりのためだと思われ。
951 :
名無しさん@お腹いっぱい。 :03/03/09 12:22
ここまでの議論見てると、もうまるっきり破綻したチームを無理やり縛るために CVS使ってみようみたいな感じだな。 まずは信頼関係を築く方法を学ぶのがいいと思うよ。
952 :
名無しさん@お腹いっぱい。 :03/03/09 13:10
>>951 その場限りの外人部隊ばかりなんで信頼関係を築いてるうちにカットオーバーです。
そういう時はルールの徹底と守らなかった場合のペナルティの明確化でがんばる
954 :
名無しさん@お腹いっぱい。 :03/03/09 13:16
そのルールの議論をしてるのでは?
CVS is not a substitute for management. CVS is not a substitute for developer communication.
957 :
名無しさん@お腹いっぱい。 :03/03/09 16:23
>>955 CVSを使っての管理ルールのことじゃないの?
958 :
名無しさん@お腹いっぱい。 :03/03/09 16:27
次スレは?
CVSではコンパイル環境の依存管理は無理だからなぁ。 厳密に同じバイナリを生成できるためにはどうしたらいいのだろう?
>959 原因が分かっているんだから対策も自明だろ
>>960 自明とか言いつつ、お前が一番わかってないんだろ?
963 :
名無しさん@お腹いっぱい。 :03/03/09 21:22
964 :
名無しさん@お腹いっぱい。 :03/03/09 23:05
厳密に同じバイナリができることを保証しないといけないような条件でなければ タグうってテストするってことでいいですか? 厳密に同じバイナリを生成する方法はコンパイラの開発元にきいてくれ
なんだかすごく盛り上がっちゃったのね。
>>912 こっそり修正っていってもCVSに登録されてたんでしょ?
されてないなら、タグ打ってcvs exportしたやつをコンパイルしないのが問題。
ここまで読んできてけど、結局バイナリを管理する理由って、
「コンパイラに再現性100%でないバグがあるかも知れないから」
ってことなのね。
まあ、その可能性を考えるなら納得です。ミッションクリティカルな世界はあるだろうし。
バイナリはソース更新を管理じゃなく、IT用にビルドしたものを管理するってことでいいですか? それぐらいだったら、CVSに放り込んじゃってもいいの?
バージョン管理するつもりなら、バイナリだろうと放り込んじゃえよ。差分だ のブランチのマージだの、テキストでしか使えない機能はあるにせよ、少なく とも体系立てて管理することはできる。 単に、CVSが一番多く使われてるだろうオープンソースの場合には、バイナリ の再現性どころか共通のバイナリってもの自体がそもそもないから、扱わない ことがほとんどってだけじゃないか?
どうしてもバイナリも管理したいっていうなら止めないけど、 バイナリファイルについては cvs add するときに -kb オプ ションをつけないと大はまりする ($Id$ とかがバイナリ中に 存在すると展開されてしまう) ので気をつけて。
バイナリを管理する理由はコンパイラのバグじゃなくて主にバイナリ生成環境に思わぬ 環境依存があった場合のための措置だとおもう。 ex) 全然関係ないはずのソフトのバグフィクスのせいでコンパイラ等の動作が変わった。
970 :
名無しさん@お腹いっぱい。 :03/03/10 07:39
皆さんの運用方法教えてください。 コーディングからテスト、本番反映までの。 つーか、次スレは?
>>969 そういえばWinXP環境でビルドすると、同じVC++6.0SP5を使っても
Win2000までと生成されるバイナリが違うなんて話はあったな。
(msvcrt.dllのバージョンが違うとlink.exeの動作が変わるそうな)
>>970 次スレはCVSにこだわらないのにしたいです。
CVS以外にもいくつかある(bitkeeperとかperforceとかsubversionとか)し、
あと管理ツールそのものだけでなく運用方針もけっこう話題が出てるんで
そういうのがスレ違いにならないようなタイトルにしたいですね。
って、誰かもう作ってるし
>>972 そういうのもアリだとは思うけど、
それだったらunix板よりはム板が適してると思われ
クライアント cygwin, サーバ Debian GNU/Linux (sid) で CVS を使ってます。
ディレクトリ全体のサイズが 130 Mbytes ほどのファイルを
クライアントから pserver (sshでトンネル), ext を使ってサーバに import しようとしましたが、
途中で No space for left on device というエラーメッセージを出して止まってしまいます。
もちろんサーバ側には 70GByteほどの残り容量があるので、
設定か何かの誤りだと思いますがご助言をお願いします。
設定ですが、サーバはインスコしたままです。
クライアントからサーバに繋げるときは
$ cvs -d :ext:
[email protected] :/home/kikyosha/CVSROOT
で繋げています。
もう一つ、サーバ側に SCP で全部のファイルを置いて
サーバでサーバ自身に接続して CVS import させるとちゃんとできます。
>>977 -T とか TMPDIR とか /tmp
>>978 素早いレス、カムサハムニダ。
/tmp は全然容量が足りませんでした。
もうちょっと容量のあるファイルシステムにシンボリックリンクを張って
もう一回実行したらうまく動いています。マンセー。
(^^)
∧_∧ ( ^^ )< ぬるぽ(^^)