トップページ⇒tech
988コメント316KB

Subversion r10

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/07/09(水) 10:02:46
Subversionはフリーなオープンソースのバージョン管理システムです。

公式HP
subversion.tigris.org
http://subversion.tigris.org/

Subversion によるバージョン管理
http://subversion.bluegate.org/

subversion: Project Status
http://subversion.tigris.org/project_status.html

subversion: Subversion Links
http://subversion.tigris.org/links.html

Version Control Systems Comparison
http://better-scm.berlios.de/comparison/comparison.html

前スレ
r9 http://pc11.2ch.net/test/read.cgi/tech/1202086238/
r8 http://pc11.2ch.net/test/read.cgi/tech/1192864879/
r7 http://pc11.2ch.net/test/read.cgi/tech/1180858500/
06 http://pc11.2ch.net/test/read.cgi/tech/1165892754/
05 http://pc8.2ch.net/test/read.cgi/tech/1145841405/
04 http://pc8.2ch.net/test/read.cgi/tech/1129642894/
03 http://pc8.2ch.net/test/read.cgi/linux/1100622362/
02 http://pc5.2ch.net/test/read.cgi/linux/1078609142/
01 http://pc.2ch.net/test/read.cgi/linux/1002355536/
0153デフォルトの名無しさん2008/08/06(水) 10:12:15
>>145
make の動作原理は、makefileに記載したソースファイル→ターゲットファイルの依存関係について、
タイムスタンプを比較し、ソースよりターゲットが古い場合にコマンド(たとえばコンパイル)を実行するというものだ。

svn update でソースファイルを差し替えたのに、ターゲットファイルの日付より古ければ、
コマンド(コンパイル)が実施されず、update 前のソースで生成されたターゲットファイルでプログラムが出来上がってしまう。

B君が 二日前に foo.c を編集した
A君が 昨日checkoutして、make を実行し、foo.c から foo.o を生成した
B君が テストを終えて、本日 foo.c をcommitした
A君が 本日updateして、B君のfoo.cを取り込んだ。ここでmakeを実行するとして、
foo.cのタイムスタンプがB君編集時刻(2日前)だと
0154デフォルトの名無しさん2008/08/06(水) 10:14:47
>>153 続き
foo.cのタイムスタンプがB君編集時刻(2日前)だと foo.c より foo.o が新しいので、
make は foo.c を再コンパイルせず、foo.o は B君編集前のfoo.c から生成された内容のままとなる。これがまずい。
0155デフォルトの名無しさん2008/08/06(水) 12:33:13
てーか、updateしたら全コンかけね?フツー
0156デフォルトの名無しさん2008/08/06(水) 12:39:37
makeの存在意義を真っ向から否定してるな
0157デフォルトの名無しさん2008/08/06(水) 12:40:00
フツーしない。
0158デフォルトの名無しさん2008/08/06(水) 12:54:13
>>152
ありがとうございます。
おかげでsvnlookで更新したファイルのリストを取得出来たのですが、
これと svn updateをどうからめてやれば、
更新ファイルのみを対象と出来るのでしょうか…
0159デフォルトの名無しさん2008/08/06(水) 13:00:26
何でも聞かないと出来ないやつはいい加減あきらめろ
0160デフォルトの名無しさん2008/08/06(水) 13:11:42
>>158
公開用のフォルダがワーキングコピーになっているなら、
svn update するだけで いいんでない?
後は、 >>152 の 1) を対策して終わりでしょ?

なんでわざわざチェックアウトし直す必要がある?
0161デフォルトの名無しさん2008/08/06(水) 16:13:26
bluegateまた落ちてんのかよ
0162デフォルトの名無しさん2008/08/06(水) 16:29:56
ttp://www.caldron.jp/~nabetaro/svn/svnbook-1.4-final/
のほうが新しいバージョンに対応していていいんじゃない?
0163デフォルトの名無しさん2008/08/06(水) 19:03:06
TortoiseSVN 厨です。
tsvn:logminsize を自動的に付与する為の設定って無いですかね?
これ設定しておかないとログ入れない奴がたくさんいるんですよ。
0164デフォルトの名無しさん2008/08/06(水) 19:18:43
post-commitでログなしなら弾くようにすればいいじゃん
01651632008/08/06(水) 19:38:16
>>164
pre-commit で模索中です。
svnlook でトランザクションのログを捕らえるところまでは確認できましたが、
ログの長さを調べる バッチファイルの記述の仕方がわかりません。
現在調査中です
0166デフォルトの名無しさん2008/08/06(水) 19:39:37
cscriptでVBS呼ぶなりすればええやん
0167デフォルトの名無しさん2008/08/06(水) 20:25:18
>>165
ちょっとはぐぐれよ・・・
ttp://www.spring-aki.com/archives/2006/10/svn_hook_script_bat.html
0168デフォルトの名無しさん2008/08/06(水) 20:41:20
>>167
探し方がたりませんでした。
ありがとう。
0169デフォルトの名無しさん2008/08/07(木) 09:23:21
Emacs 22 を使っています.
ちょっとやりすぎな変更をしてしまったとき,
svn revert で最初に戻すのは嫌だし
かといってそのまま svn commit もしたくないし,
というわけで svn diff で自分がやらかした変更を
確認しながら部分的に元に戻したりをしているんですが,
なにか便利な Emacs で使えるツールってありませんか?

つまりワーキングコピーとベースをならべて
変更点を色付けしてくれて,というツールを探しています.

vc-diff すると単に svn diff の結果がバッファに
表示されるだけで萎えます.
0170デフォルトの名無しさん2008/08/07(木) 10:41:21
Emacsで、ならEmacsスレいけばいいのに・・・。

とりあえず、Emacsを無視すると、TortoiseDiff(TortoiseMerge)ぐらいしか思いつかない。
0171デフォルトの名無しさん2008/08/07(木) 10:43:12
>>169
その用途には WinMerge 使ってる。 169 が Windows ユーザーかどうか知らないけど。
0172デフォルトの名無しさん2008/08/07(木) 10:56:15
まずワーキングコピーの最終リビジョンでブランチを作り、ワーキングコピーをブランチへスイッチするんだ。
そして、編集中のやり過ぎソースをコミットするんだ。
話はそれからだ。
0173デフォルトの名無しさん2008/08/07(木) 13:40:31
>>169
>>172が正論だけど,Emacsのツールとしては ediff (VCに連動するのは ediff-revision) がある
これ以上はEmacsスレへどうそ

0174デフォルトの名無しさん2008/08/07(木) 14:08:24
>>169
Meld使えばいいんじゃない?
0175デフォルトの名無しさん2008/08/08(金) 12:21:06
>>163
tsvnは再帰的に適用されるって書いてたような気がするから、ルートに書いてみれば?
01761632008/08/08(金) 13:00:22
>>175
ほんとだ・・・
全然気づかなかったw
ありがとう
0177デフォルトの名無しさん2008/08/08(金) 13:16:17
SVKインスコしてコミットしまくる
0178デフォルトの名無しさん2008/08/08(金) 14:08:12
svkのsvn1.5対応まだー?
0179デフォルトの名無しさん2008/08/09(土) 03:09:10
Eclipseに関してだが、revertするほどでも無い巻き戻しができるように操作履歴は多めに記憶してできるだけファイル閉じないようにしてる。
0180デフォルトの名無しさん2008/08/09(土) 11:05:53
あるブランチで大量のファイルがコミットされているリビジョンがあるとします。
このブランチのこのリビジョンのうちの1か2ファイルだけ、別のブランチに
マージかけたい場合って出来ますでしょうか?
0181デフォルトの名無しさん2008/08/09(土) 14:10:19
>>180
ファイル個別にマージを実行すればできるでしょ。
0182デフォルトの名無しさん2008/08/12(火) 16:09:57
svnmerge.pyって使える?
0183デフォルトの名無しさん2008/08/12(火) 17:51:57
1.5でマージ追跡機能として組み込まれた機能かな?
0184デフォルトの名無しさん2008/08/16(土) 02:50:38
post-commitでコミットメールとばすようにしたんだが
コミットしたファイルの前のリビジョンって取得する方法ってあるんかな?
0185デフォルトの名無しさん2008/08/17(日) 11:35:13
http://subversion.tigris.org/files/documents/15/43360/Setup-Subversion-1.5.1.en-us.msi

MD5 checksum:

3cc5c06a61d41aad76a84ba662800add *Setup-Subversion-1.5.1.en-us.msi

SHA1 checksum:

39447b7eadeae48df91d2b131bf0122ecba43672 Setup-Subversion-1.5.1.en-us.msi
0186デフォルトの名無しさん2008/08/17(日) 12:20:39
Apache2.0 向けと Apache2.2 向けが単一の msi インストーラーになったのね。
今までの Apache2.2 用ディレクトリしかケアしていなかった。
見逃していたわ、ありがとう。
0187デフォルトの名無しさん2008/08/19(火) 18:24:33
ちょっと聞きたいのですが、みなさんはコメントの記法は何か意識していますか?
Changelog記法とか、wiki記法とか・・・。よければ、理由もお聞かせ下さい。
0188デフォルトの名無しさん2008/08/19(火) 18:28:50
何のファイルの、どこを修正したのかを明確に とはよく言われる。

あとは複数ファイルをいっぺんにコミットする場合には、
かならずそのセット内でバージョンの整合性が合っているようにコミットすることも大事。

これが原因で1回デグレーション起こしてえらい騒ぎになった。
0189デフォルトの名無しさん2008/08/19(火) 20:41:41
とあるサンプル
--
csv出力対応
foo.c:csvOut()追加, コマンドライン解析変更
foo.h:csv出力に関するオプション定義追加
bar.c:csv出力対応に伴い、デバッグ出力見直し
--
大体こんな感じかな。
0190デフォルトの名無しさん2008/08/19(火) 23:14:36
CentOS上でcvs2svn使ってダンプファイル作ったら、
SVNの属性全部にsvn:executableがついたんだけど
これどうにかならんの?
0191デフォルトの名無しさん2008/08/19(火) 23:38:08
find . -type f -not -wholename '*.svn/*' -exec svn propdel svn:executable {} \;
0192デフォルトの名無しさん2008/08/20(水) 00:34:33
>>191
お!できた!!ありがとうー
01931872008/08/20(水) 08:42:22
ありがとうございます。
どのファイルを更新したか、というのを明確にしているのですね。
参考になります。
0194デフォルトの名無しさん2008/08/20(水) 09:09:44
>>187-188
変更内容よりは、変更の目的や背景が重要だろう。最悪、変更内容は差分から読み取れる。
むしろ差分でわかる内容を長々と書かれても困る。

↓ Subversion 開発向けのガイドにも似たようなことが書いてある。
http://subversion.tigris.org/hacking.html#log-messages
0195デフォルトの名無しさん2008/08/20(水) 09:44:58
英語が読めません (><)
01961872008/08/20(水) 10:54:59
本当に >>186で聞きたかったことはコミットログの内容というより、
コミットログの"記法"のことなんですw
各項目を"*"とか"・"ではじめる、とか強調したいときにはこうするとか、
wiki記法とか書いたのはそういうことです。

>>194
ああ、なるほど・・・
0197デフォルトの名無しさん2008/08/20(水) 11:13:33
俺は -m オプションで一行書くだけから,記法で修飾するほどの文字量にならない
・これこれのバグをFIXした
・これこれの機能を追加した
・リファクタリングした
とかとか
0198デフォルトの名無しさん2008/08/20(水) 11:14:26
trac と連動させているなら、trac の wiki 記法にあわせれば良いんじゃないかね?
チェンジセットのページに表示されるコミットログはwiki記法で整形されて表示される。

まあ、コミットログで大切なのは「見た目」よりも「内容」だけどな。

書く必要がないこと→日付、担当者、修正ファイル名や関数名。つまりsvnの機能を使って機械的に抽出できる情報。

書くべきこと→修正目的、参考資料、実施したテスト内容
0199デフォルトの名無しさん2008/08/20(水) 11:25:52
>>198
その見方でいくなら、
俺はコミットログにチケット番号を含めるようにして、どのコミットがどのチケットに対応してるか分かるようにしてる。
0200デフォルトの名無しさん2008/08/21(木) 00:24:20
traclightning 2.0.4を使って、LDAP認証を使用したいのですが、うまくいきません。
trac側のログインはLDAPに切り替わり認証に成功するのですが、Subversionが切り替わりません。
Subversionの認証が、tracのダイジェスト認証になっている感じです。
どなたか、アドバイスください。
0201デフォルトの名無しさん2008/08/22(金) 12:58:43
RapidSVN 夜ビルドで 1.5リポジトリいじれるようになってるー
0202デフォルトの名無しさん2008/08/24(日) 08:30:27
svn ci 時にvimに出るdiff結果が文字化けしちゃうの回避方法をご存知でしたら教えてくらさい。
(utf-8の文字列が変わったとき、diffはeuc-jpで開いているみたいなので化けちゃう)。。。
0203デフォルトの名無しさん2008/08/24(日) 09:01:14
env LANG=C svn ci
0204デフォルトの名無しさん2008/08/25(月) 01:25:38
これはアメリカのゲームです。1度やってみてください。
これは、たった3分でできるゲームです。試してみてください。
驚く結果をご覧いただけます。
このゲームを考えた本人は、メールを読んでからたった10分で願い事が
かなったそうです。このゲームは、おもしろく、かつ、あっと驚く結果を
貴方にもたらすでしょう。

約束してください。絶対に先を読まず、1行ずつ進む事。
たった3分ですから、ためす価値ありです。


まず、ペンと、紙をご用意下さい。
先を読むと、願い事が叶わなくなります。


�@まず、1番から、11番まで、縦に数字を書いてください。
�A1番と2番の横に好きな3〜7の数字をそれぞれお書き下さい。

�B3番と7番の横に知っている人の名前をお書き下さい。(必ず、興味の
ある性別名前を書く事。男なら女の人、女なら男の人、ゲイなら同姓の名
前をかく)

必ず、1行ずつ進んでください。先を読むと、なにもかもなくなります。

�C4,5,6番の横それぞれに、自分の知っている人の名前をお書き下さ
い。これは、家族の人でも知り合いや、友人、誰でも結構です。

まだ、先を見てはいけませんよ!!

�D8、9、10、11番の横に、歌のタイトルをお書き下さい。

�E最後にお願い事をして下さい。さて、ゲームの解説です。
0205デフォルトの名無しさん2008/08/25(月) 01:26:36
このレスは>>204の続きのレスです。
>>204をまだ読んでいない方は、先を見てはいけませんよ!!
醍醐味が無くなってしまいます。

1)このゲームの事を、2番に書いた数字の人に伝えて下さい。

2)3番に書いた人は貴方の愛する人です。

3)7番に書いた人は、好きだけれど叶わぬ恋の相手です。

4)4番に書いた人は、貴方がとても大切に思う人です。

5)5番に書いた人は、貴方の事をとても良く理解してくれる相手です。

6)6番に書いた人は、貴方に幸運をもたらしてくれる人です。

7)8番に書いた歌は、3番に書いた人を表す歌。

8)9番に書いた歌は、7番に書いた人を表す歌。

9)10番に書いた歌は、貴方の心の中を表す歌。

10)そして、11番に書いた歌は、貴方の人生を表す歌です。この書き
込みを読んでから、1時間以内に10個の掲示板にこの書き込みをコピー
して貼って下さい。そうすれば、あなたの願い事は叶うでしょう。もし、
貼らなければ、願い事を逆のことが起こるでしょう。とても奇妙ですが当
たってませんか?




0206デフォルトの名無しさん2008/08/26(火) 06:35:32
管理者権限を持っていない借りてるVirtual Hostのサーバーに
SubVersionを入れたりできるのでしょうか?
できるのであれば設定の仕方とか教えてください。
0207デフォルトの名無しさん2008/08/26(火) 07:49:58
インスコ自体は ./configure --prefix=$HOME/usr とかでいいだろうが、
デーモン起動出来るかどうかは知らん。
0208デフォルトの名無しさん2008/08/26(火) 08:33:41
svnserveは3690( 1024より大)番ポートを使うから一般権限でいけるかなぁ。
0209デフォルトの名無しさん2008/08/26(火) 08:44:10
sshで入れてgcc使えればデーモン常駐しなくても出来るよ
ビルドしてsvnserveにパス通しとけばsvn+ssh://でok
0210デフォルトの名無しさん2008/08/27(水) 19:21:03
コミット時、
hooks(start-commit,pre-commit)で、標準出力で画面に適当な文字列を表示させたいのですが、

#!/bin/sh

echo "test 0" >&0 # 標準入力の場合は画面に表示
echo "test 1" >&1 # 標準出力の場合は画面に表示しない

echo
0211デフォルトの名無しさん2008/08/27(水) 19:51:34
     ____
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  >>210はワシが汚した
    |  `ニニ' /
   ノ `ー―i´


コミット時のhooks(start-commit,pre-commit)で、
画面に適当な文字列を表示させたいのですが、端末に反映出来ません。
ファイルへのリダイレクションは出来ました。

start-commit は以下のように書いているのですが、端末表示には反映されません
何かアドバイを下さい。

#!/bin/sh

echo "test -" # 標準出力は画面に表示しない
echo "test 1" >&1 # 標準出力は画面に表示しない
echo "test f" >> test.txt # ファイルには落ちる
0212デフォルトの名無しさん2008/08/27(水) 21:26:57
svnserv か Apache かは知らんけど hooks ってサーバーが実行するんだから、
画面なんて持ってないと思うけど。
0213デフォルトの名無しさん2008/08/28(木) 00:32:57
確かめてないけど、
フックスクリプトが終了コード0以外を返したとき、スクリプトの標準出力
(あるいは標準エラー出力)がクライアントにエラーメッセージとして
返されるんじゃないかな。
なので、スクリプトの最後に「exit 1」を追加してみては?
0214デフォルトの名無しさん2008/08/28(木) 11:59:29
TracLightning VerUp age
0215デフォルトの名無しさん2008/08/28(木) 22:19:50
>>214
スレ違い
0216デフォルトの名無しさん2008/08/28(木) 23:02:19
ここの 1.4.6 が消えてる... 古いPCには便利だったのに
http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/rhel-3/i386/
02172112008/08/29(金) 01:21:09
青梅から、生還しました。ものすご雨でした雷が止みませんでした。
     ____
   /__.))ノヽ
   .|ミ.l _  ._ i.)
  (^'ミ/.´・ .〈・ リ
  .しi   r、_) |  >>210はワシが汚した
    |  `ニニ' /
   ノ `ー―i´

標準出力は端末に表示できないことが分かりました、
ただし、標準エラー出力は出せます、

バグなのか仕様なのか分からん、もう諦めた。
0218デフォルトの名無しさん2008/08/29(金) 08:50:59
start-commit.tmpl には次のように書いてあるので、仕様じゃね?
# If the hook program exits with success, the commit continues; but
# if it exits with failure (non-zero), the commit is stopped before
# a Subversion txn is created, and STDERR is returned to the client.
0219デフォルトの名無しさん2008/08/29(金) 17:07:14
svnサーバのIPアドレスを変えたのだが,うっかりそれまでの
作業コピーをコミットしないままsvnサーバのIPアドレスが代わってしまった.

作業コピー側のsvnサーバのIPアドレスを変えたいのだが,どうすればできるだろうか?
0220デフォルトの名無しさん2008/08/29(金) 17:15:31
svn switch --relocate
0221デフォルトの名無しさん2008/08/29(金) 22:38:45
>>211
いまいち用途がわからないんで聞くけど、start-commitでどんなメッセージを表示させたいの?
0222デフォルトの名無しさん2008/08/29(金) 22:40:17
もう自分でバグだと結論づけたんだからほっとけよ
クレーマーだから
0223デフォルトの名無しさん2008/08/30(土) 03:50:10
>>219
常に名前で解決するようにする
hostsファイルに追加するなりすればよい
0224デフォルトの名無しさん2008/08/31(日) 04:20:22
svnのwindowsバイナリ入れようと思うんですが、
CollabNet版とか
Tigris.org版とか
SlikSVN版とかいろいろあるようで、
どれがいいんですか?

普段はTortoiseSVN使ってるんですが、
バッチファイルで一括処理したい時もあるので
コマンドラインで使えるの探してる訳です。
0225デフォルトの名無しさん2008/08/31(日) 07:57:09
>>224
TortoiseSVNに付属のsvn.exeでは何か不満でも?
0226デフォルトの名無しさん2008/08/31(日) 08:12:12
>>224
TortoiseProc.exe では何か不満でも?
(詳しくは、ヘルプの 付録 D. TortoiseSVN の自動化 を参照)

>>225
TortoiseSVN に svn.exe なんかついてたっけ?
0227デフォルトの名無しさん2008/08/31(日) 11:02:50
>>225
ついてないです。
0228デフォルトの名無しさん2008/08/31(日) 12:22:45
>>226
>TortoiseProc.exe では何か不満でも?
224じゃないがコマンド名なげぇw


俺はとりあえずTigris.orgからダウンロードしたSVN使ってるが、他はなんか違うのかは気になるな。
CollabNetとかアカウント登録しないと落とせないのは何なんだ。
0229デフォルトの名無しさん2008/08/31(日) 12:29:08
>>228
> 224じゃないがコマンド名なげぇw

オプションの方がもっとウザイけど、バッチでやるんなら問題ないだろ。
0230デフォルトの名無しさん2008/08/31(日) 13:43:40
Subversion 1.5.2 age
02312242008/08/31(日) 16:54:59
TortoiseProcの情報ありがとうございました。
これで大丈夫です。
0232デフォルトの名無しさん2008/08/31(日) 17:28:31
>>230
更新確認した。
0233デフォルトの名無しさん2008/08/31(日) 18:08:32
TortoiseSVN 1.5.3 age
0234デフォルトの名無しさん2008/08/31(日) 20:43:42
changelog?
0235デフォルトの名無しさん2008/08/31(日) 22:43:53
いつもながらTortoiseSVNのバージョン番号はまぎらわしいな
0236デフォルトの名無しさん2008/09/04(木) 05:48:36
リポジトリのレプリケーションってあったら使う?
0237デフォルトの名無しさん2008/09/04(木) 09:18:56
What is replication?
0238デフォルトの名無しさん2008/09/04(木) 09:47:17
DBMS用語のそれじゃね
0239デフォルトの名無しさん2008/09/04(木) 10:18:17
git とかの分散系のを使えばいいんじゃね?
0240デフォルトの名無しさん2008/09/04(木) 16:02:35
svk
0241デフォルトの名無しさん2008/09/04(木) 16:31:42
1.5のはSVKは使えんよ
0242デフォルトの名無しさん2008/09/04(木) 16:39:58
なんで?
0243デフォルトの名無しさん2008/09/04(木) 16:44:30
いきなり途中で送信してしまった orz

なんで?
クライアント TortoiseSVN 1.5.3 & svk-2.0.2 と鯖 1.5.2 との組み合わせで特に問題なく使えてる気がするけど。
何か不具合あんの?
0244デフォルトの名無しさん2008/09/04(木) 17:35:56
うちはアップグレード後、syncもpullもpushもダメになったよ。
0245デフォルトの名無しさん2008/09/04(木) 17:37:49
svkが1.5に対応してないんじゃないか?
0246デフォルトの名無しさん2008/09/04(木) 17:40:11
鯖1.52って言ってもリポジトリのアップグレードしてませんでしたってオチじゃ
0247デフォルトの名無しさん2008/09/04(木) 17:59:23
1.5でリポジトリ変わったからな
0248デフォルトの名無しさん2008/09/04(木) 18:17:25
試しにやってみたけど、普通にmirror→sync→pull→pushと出来たぞ。
0249デフォルトの名無しさん2008/09/05(金) 10:58:12
最新リビジョンにupdateされたワーキングコピーを,
古いビジョンの状態に戻すにはどうすればいいんですか?

例えば,svn update して rev 12. となったとき,
rev 12 の変更が間違いだったことが分かり,
rev 11 の状態に戻したいんです.
0250デフォルトの名無しさん2008/09/05(金) 11:03:16
>>249
11の内容をとってきてコミット
02512492008/09/05(金) 11:12:40
>>250
ありがとうございます.
その,「11の内容をとってきて」をワーキングコピーの中でやるには
どういうコマンドを使えばいいんでしょうか?
0252デフォルトの名無しさん2008/09/05(金) 11:47:38
Setup-Subversion-1.5.2.en-us.msi
キテター!! っと思ったらドラフトだった・・・
■ このスレッドは過去ログ倉庫に格納されています