■掲示板に戻る■ 1- 最新50CVSを使ってファイル管理
- 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を取る方法ってある?
- 6 :名無しさん@お腹いっぱい。 :2001/08/10(金) 23:58
- >>5
cvs diff -r {リビジョン}
でどう?。
- 7 :名無しさん@お腹いっぱい。 :2001/08/10(金) 23:59
- リビジョンを明示的に指定しないで「1世代前」みたいにしたいんですが。
- 8 :2 :2001/08/11(土) 01:08
> ただ、root で cvs 使うと文句言われないか? それで
> 挫折した経験があるんだが。/etc なら rcs の方が
> いいかもね。
やっぱりそうかなあ。/etcはまじめにバックアップとって、
RCSかね。複数人で管理してるからCVSの方が楽かと
思ったんだけど。
- 9 :ななしさん@おなかいっぱい :2001/08/11(土) 01:11
- >>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
- >>15
rsync 使ってます。
- 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がうまく動いてないんです。
- 21 :名無しさん@お腹いっぱい。 :2001/08/14(火) 22:38
- >>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
- CVSを使ったネットからのMAKE(?)の方法がイマイチわからない。
http://gnu-darwin.sourceforge.net/
ココ使いたいんだけどなぁ。
- 27 :19 :01/08/26 16:41
- いや 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からもらってこい。
- 36 :名無しさん@お腹いっぱい。 :01/08/28 17:39 ID:QKtRe60g
- dotfileをcvsで管理すると便利だよね。
新しいマシン使うときも一発
- 37 :名無しさん@XEmacs :01/08/28 18:04 ID:ign9iVXY
- >>35
CVS は動いてるんですな。これが。
sccs はあるけど、RCS は無いみたいです。
でも、$Id$ はちゃんと展開されてる。
CVS の配布には RCS の一部だけが含まれてるんでしょうかね。
- 38 :名無しさん@お腹いっぱい。 :01/08/28 19:04 ID:/foo1b.s
- 二重現実逃避モード。
>>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も生まれてくる。
要らないのが生まれてきて邪魔なんですけど、これって仕様??
それとも俺の使い方が間違ってる?
- 40 :名無しさん@お腹いっぱい。 :01/08/31 01:40 ID:cWiTsGz2
- 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
- >>38を思いっきり読み飛ばしていた...鬱氏。
- 44 :名無しさん@Emacs :01/08/31 09:16 ID:.P4YZmic
- >>41
> 「revision 下げられないんじゃバージョン管理してる意味ないじゃん」って
なんのことかよくわかりません。
古いバージョンをメンテナンスするときにブランチ切ってない
とかいう話じゃないよね?
- 45 :名無しさん@お腹いっぱい。 :01/08/31 09:51 ID:SYzSjnws
- >>44
> 古いバージョンをメンテナンスするときにブランチ切ってない
いえ、そういう事じゃなくって、
誰かが間違って、ゴミだけを付けたファイル(C-p で上に行こうとして p を入れちゃっ
たとか)を commit したときに、 rivision 上げて対処するんじゃ何かバージョン管
理って感じがしないなぁって事みたいです。
言われてみれば確かにそうかもという感じがしたので。
- 46 :名無しさん@お腹いっぱい。 :01/08/31 10:01 ID:W27R9832
- >>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 といいますです。
- 53 :名無しさん@お腹いっぱい。 :01/08/31 18:58 ID:lieJqDvo
- >>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でファイル管理するのかね〜
- 61 :名無しさん@お腹いっぱい。 :01/09/07 23:20
- >>60
ネタだとイマイチ。
天然ならちょっと尊敬。
- 62 :名無しさん@お腹いっぱい。 :01/09/08 00:11
- ネタだろうけど面白くない。
どうせならイタイ発言スレにコピーされるぐらい真実味
のあるのが欲しい。
あのスレのはほとんど天然物だけど。
- 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であるモジュールにあったファイル名を
全部表示(削除したファイルも含めて)することってできないでしょうか?
あと、あるリビジョンのファイル名一覧を得ることはできないでしょうか?
随分古いスレをあげてしまってすいません。
- 66 :名無しさん@お腹いっぱい。 :01/10/09 05:53
- >>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です」
「わかってるねんで!?」
- 68 :ななしさん@おなかいっぱい :01/10/09 06:28
- 最近、/etc以下などの設定ファイルの管理にCVSを使い始めた。いや、
master.passwdとかはrepositoryには入れてないけど。どうせpasswd使え
ば中身変わっちゃうし……。
しかし、これはなかなか快適かも。ログはしっかり残るし、インストール時の
デフォルトや過去の任意の時点との比較も簡単。
- 69 :名無しさん@お腹いっぱい。 :01/10/09 06:35
- >>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 だと格段に便利だよな.
そしてそのタイミングでわかりやすいようにタグを打っていく. 完璧.
- 73 :65 :01/10/09 13:21
- >>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
- http://www.amazon.co.jp/exec/obidos/search-handle-url/index=books-jp&rank=+salesrank&field-keywords=cvs&bq=1/ref=sr_aps_allb__/250-9205354-1985857
CVSの本が数冊出ていますがどれがおすすめでしょうか?
- 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 は頓挫? してるようだし.
- 77 :65 :01/10/09 18:51
- >>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 をインストールしちゃう、とか :)
- 79 :78 :01/10/09 21:38
- マジレスすると、こうかなあ。
$ cvs -d $CVSROOT co -p -rREV MODULES 2>&1 >/dev/null | \
sed -n 's/^Checking out \(.*\)$/\1/p'
メチャメチャ遅いけど。
- 80 :名無しさん@お腹いっぱい。 :01/10/09 21:43
- >>76
p4, subversion
- 81 :75 :01/10/10 02:38
- >>77 いや、loginできなくても NFS mountぐらいできれば okよ。
と屁理屈を言ってみる。
俺も cvswebの hackとかしてるんだけど、working directoryがないと
できない操作が多くてつらいね。
logぐらい何とかさせろ。
新着レスの表示
read.cgi ver5.26+ (01/10/21-)