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

Subversion r10

レス数が950を超えています。1000を超えると書き込みができなくなります。
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/
0893デフォルトの名無しさん2008/12/14(日) 12:46:46
>>892
Trac 0.11.2 で試したけどそんな風にならないよ。

>>888
うちの場合はほとんどのプロジェクトで共通のフック処理をしているけど
例外的なプロジェクトは変更パスで判断して一部の処理を変更しています。
0894デフォルトの名無しさん2008/12/14(日) 12:47:16
>885-886 が理由なら、
svndumpfilterをかませばいいだけなような気がする。
0895デフォルトの名無しさん2008/12/14(日) 15:50:06
TTB/プロジェクト
プロジェクト/TTB
の選択によってTracの挙動が変わっているのではないかな
0896デフォルトの名無しさん2008/12/14(日) 21:22:32
ど素人丸出しの質問なのですが
TortoiseSVNでsvn+sshがうまく行きません。checkoutしようとすると「接続が突然閉じました」というエラーが出て動作しません。
一応ググってみてPuTTYで公開鍵/秘密鍵を生成、セッションを保存、pagentを起動して
svn+ssh://(セッション名)/(レポジトリ名) と指定してやっているのですが上述のエラーが出てしまいます。
エラーメッセージも↑しか出ないし正直お手上げです・・・
ちなみにsvnのサーバは所与なので詳細は分かりません。
0897デフォルトの名無しさん2008/12/14(日) 21:33:46
TortoiseSVNからGoogleCodeのSVNを利用しています。

先日、新たにフォルダやファイルが追加されたのですが、いくら更新を
しても、それらのフォルダ・ファイルがローカルに現れません。
どうしたらよいでしょうか?
0898デフォルトの名無しさん2008/12/14(日) 21:41:39
>>896
まずputtyからのsshはできてるのか?
08998962008/12/15(月) 09:13:40
>>898
出来ていると思います
openを押すとパスフレーズなしでログインできるので。
0900デフォルトの名無しさん2008/12/15(月) 11:44:27
sshで入った状態でsvnserveを起動できる?
09018962008/12/15(月) 12:59:02
svnserveとコマンドを打つのでしょうか?
svnserve -d では何も出力はありませんでした

サーバは学校側で運営しているもので、クライアントがLinuxならターミナルから
svn co svn+ssh://... 等とすると正常に取得できるので関係ないと思いますが・・
0902デフォルトの名無しさん2008/12/15(月) 15:40:08
TortoiseSVNってTortoisePlinkっていうのをSSHクライアントとして使ってるっぽいね。
TortoisePlinkのバージョンが古くて接続できないような設定にsshサーバのほうが
なってるんじゃない?
TortoiseSVNのSettingsのNetwork欄のSSH clientをPuTTYのplink.exeとかにしてみたらどう?
09038962008/12/15(月) 15:59:02
TortoisePlinkもPuTTYのplink.exeも両方試したのですがダメでした。
何なんでしょうね、せめてTortoiseSVNがもう少し詳しいエラーを吐いてくれれば・・・
0904デフォルトの名無しさん2008/12/15(月) 16:05:17
http://yebisuya.dip.jp/yeblog/archives/a000499.html
Plinkwを使ってログを見るというのは試してみた?そのログをみれば分かるかも。
09058962008/12/15(月) 16:16:26
plinkwを使ってみたところ
bash: mypython: command not found
というログが出ました。mypythonというのはセッション名ですが・・・ログインしたあとセッション名でコマンドを実行しようとしている?
0906デフォルトの名無しさん2008/12/15(月) 21:47:55
>>905
svnはシステム全体ではなく個人の領域だけにインストールされているのかな?
レンタルサーバにgitをインストールしたときに.bashrcでgitのパスを設定したら
うまくいったことがあった。
0907デフォルトの名無しさん2008/12/15(月) 22:07:47
plinkにmypythonを2個渡してるんじゃないの?
0908デフォルトの名無しさん2008/12/16(火) 00:36:41
>>896
SSHクライアントをパスワード指定でアクセス出来るようなら鍵の問題。
似たようなトラブル対応で
・鍵ファイルの置き場のパスに空白文字が含まれていて引数がおかしくなってた
・拡張子表示してなくて鍵ファイル名の指定が不十分だった
という事はあった。
TortoiseSVNのSSHクライアント指定のエラーは確かに不親切ではある。
原因気がつくまで結構時間とられた。
0909デフォルトの名無しさん2008/12/16(火) 01:29:29
はじめて TortoiseSVN を使ったとき、SSH通信がまったくできなかった。
イロイロ試したがどれもダメで、とうとう諦めた。
3ヶ月くらい経って、また再挑戦したらスンナリ通信できた。
よく調べたら TortoiseSVN 1.5.0 にバグがあってSSH通信できないんだと。
あの苦労は何だったんだ!
0910デフォルトの名無しさん2008/12/16(火) 10:31:50
svnやsvnserveが標準のパス(/usr/binなど)以外にインストールされていると
svn+sshに失敗するけど、関係ない?

sshd自身は、シェルの設定ファイル(.bash_profileなど)を評価せず、
かわりに~/.ssh/environmentを評価することになってる。
ttp://www.unixuser.org/~euske/doc/openssh/jman/sshd.html#ログインの過程

もし関係あるなら、PATHの設定をenvironmentに書くとうまくいくかも。
09118962008/12/16(火) 21:58:54
>>907
エラーメッセージ順当に読んだらそういうことになりますけど、何をどうやったらそういうことになるのか・・・
TortoiseSVNで指定するのはsvn+ssh://mypython/(レポジトリ名) くらいですし
0912デフォルトの名無しさん2008/12/16(火) 23:05:18
>>896
mypythonってのがPuTTYのセッション名だと思うのだが、
やり方換えてLinuxと同じように、svn+ssh://(ユーザ名)@(ホスト名)/(レポジトリ名) を
試してみたらどうだろう。
いままで、その結果を書き込んでない……よね?

このとき、PuTTYの「標準の設定」にデフォルトユーザ名が入っていてはいけない。と
TortoiseSVNのマニュアル(trunk)に書いてあった。
0913デフォルトの名無しさん2008/12/16(火) 23:13:26
>>911
plink.exeの代わりにバッチ指定して調べればいいじゃん。
0914デフォルトの名無しさん2008/12/19(金) 00:56:41
TortoiseSVN でコミットした時にタイムアウトエラーが出て作業コピーは
コミット前の変更状態なんですが、リポジトリには新しいリビジョンがで
きてコミットが成功したようになっていました。
タイムアウトエラーのときはこのようにリポジトリと作業コピーは矛盾し
た状態になるのでしょうか?
0915デフォルトの名無しさん2008/12/19(金) 04:54:04
>>914
そうとは限らないでしょうね。
0916デフォルトの名無しさん2008/12/19(金) 23:16:07
大きな改造をbranches配下でやって毎日多数の人がコミットし、
完了後にtruncにマージした場合、
branchesに残る開発途中のリビジョンは必要無いのですが、
そのまま残してますか?また削除することは可能ですか?
0917デフォルトの名無しさん2008/12/20(土) 00:32:54
削除というのは、ブランチを svn rm ってこと?
それは可能だし、完全にtrunkに統合したなら削除していいだろう

もしかしてブランチの途中のコミットを無かったことにしたい?
dump/restoreを駆使すれば可能かもしれないけど、
複数人で使ってるならリポジトリを直接いじるのはやめとけ
0918デフォルトの名無しさん2008/12/20(土) 02:05:45
履歴を残すのが目的のsvn
でもいらなくなった履歴は消したい。
そうしてディスク領域の節約をしたい、って事じゃね?
0919デフォルトの名無しさん2008/12/20(土) 09:44:36
>>917
>>918
そうです。ブランチの下に個人名とかで沢山残ってるが使うことは99%無く、
バックアップ目的で日に何回もコミットされて容量もかさみます。
元に戻したいのではなく、ブランチの下の個人名のフォルダを、
ビジョン欠番でもいいので削除したいです。
0920デフォルトの名無しさん2008/12/20(土) 10:05:58
まずは本当に容量がかさむのかどうか調べてみたらどうだろう。
0921デフォルトの名無しさん2008/12/20(土) 10:18:34
微々たる要領のためにリポジトリをメンテナンスする工数で、数テラバイトのHDDが買えると思うんだがどうだろう。
0922デフォルトの名無しさん2008/12/20(土) 10:47:36
システムな話ではなく、ソーシャルな話のような気がするが。
その個人とはこの件でお話したんですか?
0923デフォルトの名無しさん2008/12/20(土) 13:57:06
svndumpfilterでできるけどよっぽどのとき以外は
svn rmとディスク増設のほうが楽じゃなかろうか
0924デフォルトの名無しさん2008/12/20(土) 15:44:59
>>919
ブランチ作ったときの容量の増え方を勘違いしてないよな?
1Mあるフォルダのブランチ作っても2Mにはならないぞ
0925デフォルトの名無しさん2008/12/20(土) 15:59:35
>>919見て思ったんだけど、作業コピーに対して
・動作しない状態のコードとかでコミットはできない
・でも作業状態のスナップショットとして
 個人リポジトリ等でいいからコミットしたい
なんてときはどうやればいいんだろう。
個人リポジトリ管理下の別ディレクトリにファイルコピーして
コミットするしかない?
0926デフォルトの名無しさん2008/12/20(土) 16:03:01
そこで分散型ですよ。
0927デフォルトの名無しさん2008/12/20(土) 16:03:12
>925
bzr-svnやhgsvnを使う。
0928デフォルトの名無しさん2008/12/20(土) 16:13:36
即レス感謝。
BazaarやMercurialのブリッジ使ってそっちで管理しろってことかな?
分散型はつかったことないからもうちょっと調べてみる。
0929デフォルトの名無しさん2008/12/20(土) 16:34:53
分散型のがsvnのレポジトリをうまいこと扱ってくれる傾向にある昨今
としては、あえてsvkを選択する必要性は薄いかな。
0930デフォルトの名無しさん2008/12/20(土) 16:41:31
svkのが枯れてる
0931デフォルトの名無しさん2008/12/20(土) 17:54:52
hgsvnのバグ直ったの?

http://pc11.2ch.net/test/read.cgi/tech/1193332500/599
599 名前:デフォルトの名無しさん[] 投稿日:2008/04/18(金) 16:42:47
hgsvnにバグがある

aというディレクトリがあって、その中にfoo.txtっていうファイルがある。
aをbという名前でコピーしてコミット。
b/foo.txtをsvn rmで削除して、a/foo.txtをbの下にコピーしてコミット。

こうやって作ったsubversionのリポジトリからhgimportsvnとhgpullsvnを使うと
a/foo.txtが削除された状態(hg stで?が付く)になってしまう
0932デフォルトの名無しさん2008/12/20(土) 21:39:37
hgsvnはかなり未完成・・・。
bzr-svnと、git-svnはいいせんいってる。
0933デフォルトの名無しさん2008/12/21(日) 01:08:09
今EclipseでCVS使ってるんですけど、Subversion入れたらもっと便利に使えますか?
0934デフォルトの名無しさん2008/12/21(日) 09:33:44
フォルダをリネームしたら、そのフォルダと配下のファイルの
ログがなくなるのはみなさんどうやって対処してるんですか?
0935デフォルトの名無しさん2008/12/21(日) 11:12:19
何でそんなことになるのか、まずその方法を書いてくれ。
0936デフォルトの名無しさん2008/12/21(日) 12:42:54
>>934
? 無くなってないよ?
0937デフォルトの名無しさん2008/12/21(日) 12:45:07
普通にmv したんじゃね?
09389342008/12/21(日) 15:49:41
Tortoise1.4なんですが、
Repos/Sample1/test1.txt
          /test2.txt
          /test3.txt

Sample1フォルダを、renameで、Sample2と名前を変えて
Reposフォルダを右クリックしてコミットしました。
showlogとやると、過去のlogを見ることができないのですが。
0939デフォルトの名無しさん2008/12/21(日) 16:25:28
>938
show log で出てくるダイアログの下の方にある Stop on copy/rename のチェックボックスが入ってない?
0940デフォルトの名無しさん2008/12/21(日) 17:06:22
な、なるほど!
オプションがあったのですね
0941デフォルトの名無しさん2008/12/23(火) 08:55:38
Subversion 1.5.5 age
ttp://svn.collab.net/repos/svn/tags/1.5.5/CHANGES
0942デフォルトの名無しさん2008/12/23(火) 10:52:59
> * do not create mergeinfo for wc-wc moves or copies (r34184, -585)
キター
0943デフォルトの名無しさん2008/12/23(火) 17:54:19
3Gb近いフォルダをコミットしたら「FILE TO LARGE」
って出てコミットに失敗しました。

ググったら、svnの1.xのバージョンでは2Gbを超えるコピーはできない
って公式に書いてあるだけど

コミット処理の内部にコピー処理って入ってるの?
もしくはsvnのソース見る方法あったら教えて下さい。
0944デフォルトの名無しさん2008/12/23(火) 18:01:24
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
0945デフォルトの名無しさん2008/12/23(火) 21:17:54
オープンソースプロダクトに対してソースを見る方法を
尋ねる人がいるとはオドロキだ。

0946デフォルトの名無しさん2008/12/23(火) 21:22:46
どこを読んだらいいのかわかりません、て質問が、ある規模以上の
ソフトウェアなら普通にあると思うが。
0947デフォルトの名無しさん2008/12/23(火) 21:38:12
「ソースのどこを」ならべつにいいと思うぞ。
でもそういう質問じゃないだろ。
0948デフォルトの名無しさん2008/12/23(火) 22:32:09
全角英数使うやつだぞ。レベルは推して知るべし。
0949デフォルトの名無しさん2008/12/23(火) 22:51:01
そもそも3GB近いフォルダをぶち込んで何を管理したかったのか
0950デフォルトの名無しさん2008/12/24(水) 00:51:47
いや、ツッコミどころは↓ここじゃないか?
>コミット処理の内部にコピー処理って入ってるの?
0951デフォルトの名無しさん2008/12/24(水) 01:03:38
?
解説よろ
09529432008/12/24(水) 01:26:21
公式行って、commit-cmd確認したらコピー処理入ってない…
マジで顔真っ赤なんだが…とんだ勘違いをしてたみたいです。
どんだけ俺バカなんだよ、もう死にてぇ★
0953デフォルトの名無しさん2008/12/24(水) 02:18:20
えええ、内部処理を明確に知らない限り疑問に持つのは普通だと思うけど
0954デフォルトの名無しさん2008/12/24(水) 03:04:17
「コピー処理」って何のこと言ってんだ?
0955デフォルトの名無しさん2008/12/24(水) 05:51:53
>>945
オープンソースじゃないプロダクトのソースを見る方法を尋ねる人もいないと思うが。
0956デフォルトの名無しさん2008/12/24(水) 07:43:39
>>955
それなら「$xxx.xxでソース買えるよ」とかいうレスもあり得る。
0957デフォルトの名無しさん2008/12/25(木) 18:55:15
質問です。
あるファイルをsvn管理から除外したい場合には、svn:ignoreを使いますが、
あるファイル以外を全て除外したい場合は、どのようにすればよいでしょうか?
0958デフォルトの名無しさん2008/12/25(木) 18:56:57
>>957
あるファイルだけadd
0959デフォルトの名無しさん2008/12/25(木) 19:01:02
>>958
それでは svn status で ? という表示が並んでしまいます。
無視されたファイルは svn status で非表示になるようにしたいのです。
0960デフォルトの名無しさん2008/12/25(木) 19:06:08
こんな所でめんどくさそうに質問する暇があるんなら
無視したいファイルを全部ignoreにぶちこめよ
0961デフォルトの名無しさん2008/12/25(木) 19:30:11
ファイル名の命名に規則性をもたせるとか、
もっと計画的に「プロジェクト」を立ち上げれば、
こういうことにはならない。
0962デフォルトの名無しさん2008/12/25(木) 19:31:04
>>959
んじゃsvn status -q
0963デフォルトの名無しさん2008/12/25(木) 19:48:24
>>960
現在はそれでやっています。もっと良い方法があるかを知りたかったのです。

>>961
それを決めたのは元請けなので...。

>>962
それでは svn add する前のファイルまで見えなくなってしまいます。
0964デフォルトの名無しさん2008/12/25(木) 19:48:46
svnに登録した方がsvn:ignoreよりも強くなかったっけ?
svn:ignore を * にして、必要なファイルだけ add しとけば上手くいかない?
0965デフォルトの名無しさん2008/12/25(木) 20:00:17
>>964
ありがとうございます。確かにその通りに動作しました。
しかし、そのディレクトリに新規追加したファイルが ? と表示されないので、
svn add し忘れる可能性があります。
このデメリットと、毎回 svn propedit しなくていいメリットとを比較すると、
意見の分かれるところかも知れません。

いずれにせよ、特定のファイル以外を除外、という設定は存在しないようですね。
あとは検討してみます。ありがとうございました。
0966デフォルトの名無しさん2008/12/25(木) 20:06:57
自己訂正。

>>965
> しかし、そのディレクトリに新規追加したファイルが ? と表示されないので、
> svn add し忘れる可能性があります。

よく考えたら、特定のファイル以外を無視する設定があったら、当然この問題
が起こるのですね。>>964さんの答えは最初の>>957の質問に対する完全な回答
でした。

自分の質問と矛盾する返答をしてしまってすみません。
0967デフォルトの名無しさん2008/12/25(木) 20:07:52
>>965
svn addする = 特定のファイル
それ以外 = 無視するファイル

だろ。ディレクトリもsvn addしていない以上無視すべきなんじゃないのか。
結局どうしたいのかわからん…
0968デフォルトの名無しさん2008/12/25(木) 20:25:04
>>967
レスが行き違ってしまったようです。重ねて申し訳ありません。
0969デフォルトの名無しさん2008/12/26(金) 00:44:56
>>963
元請けが決めたことだろうがなんだろうが、問題があるんだから変更をおねがいしたらいいじゃない。
問題があるとわかってて黙って従って、結果として作業効率が落ちたりしたら自分たちの責任にされるんだぜ。
0970デフォルトの名無しさん2008/12/26(金) 10:23:20
ぶっちゃけ全部Ignore何て言うふざけた状態なら使わない方がマシ
0971デフォルトの名無しさん2008/12/26(金) 10:32:40
必要なものだけ目で判断してAddしていくんならIgnoreの意味なんてなくね?
0972デフォルトの名無しさん2008/12/26(金) 11:32:13
ラッパ書けば?
09739572008/12/26(金) 11:34:01
動的にファイルの生成されるデータディレクトリの中に、一つだけ固定された
ファイルがあるという仕様なのです。

確かにあまり良い仕様ではないとは思いますが、ほかの良い方法を私も思いつ
きませんでしたし、データファイル数が少ないうちなら現実的な選択肢かと思っ
ています。
0974デフォルトの名無しさん2008/12/26(金) 11:37:03
それをチェックアウトした人は全部Ignoreでどうすればいいんだよ
0975デフォルトの名無しさん2008/12/26(金) 11:49:34
キャッシュファイルのディレクトリの中に、
そのキャッシュ群を GC するようなスクリプトがある状態だろうな。
どう考えても設計ミス。スクリプトを外に出すべき。
0976デフォルトの名無しさん2008/12/26(金) 11:56:50
> 動的にファイルの生成されるデータディレクトリ

そのディレクトリを ignore する。

> 一つだけ固定されたファイルがあるという仕様なのです。

その固定ファイルは、親ディレクトリか隣接ディレクトリに元ファイルを置いて svn で管理する。
チェックアウトやチェックインにて、データディレクトリへコピーする(フックで対応できるかも)
09779572008/12/26(金) 15:37:37
>>974
件の固定ファイルだけはチェックアウトされますから問題ありません。

>>975
スクリプトではなく固定データファイルです。このディレクトリ内にはデータ
ファイルしか存在しません。動的に生成されるデータファイルと同じ場所にあ
る方が、ファイルを利用する側からは便利なようです。

>>976
このディレクトリは ignore したくありません。単にチェックアウトするだけ
で必要なデータディレクトリが作られるのは便利です。

固定データファイルは一つしかない(今は増える予定もない)ので、そこまで
手間をかけるメリットはないと思います。レポジトリ管理者は元請なので、フッ
クしてもらうにもいちいちやり取りが必要です。
09789572008/12/26(金) 15:39:33
補足。
>>974
固定ファイル以外は、元々存在しなくてもすべて動的に生成されます。実行前
に用意する必要があるのは固定ファイルだけです。
0979デフォルトの名無しさん2008/12/26(金) 16:27:31
2chでぐだぐだ言ってるのは手間じゃないのかw

固定ファイル以外を削除してからsvnコマンドを呼ぶラッパ作ればいいと思うんだけど。
ていうか条件が矛盾してないか?

>>963>それでは svn add する前のファイルまで見えなくなってしまいます。
>>965>新規追加したファイルが ? と表示されないので、svn add し忘れる可能性があります。
>>978>固定データファイルは一つしかない(今は増える予定もない)
09809572008/12/26(金) 16:49:09
一つ言い忘れていたことがあります。
実は、>>964さんの提案で、当初の問題は一応解決しました。
これをはっきり書いていませんでした。申し訳ありません。

>>979
実はかなりの手間で、文章を書くのが苦手なので困っていました。説明が足り
ないようで、意図と違う回答ばかり返ってきました。
皆さんの手間を取らせてすみません。
09819572008/12/26(金) 16:59:02
>>979
あと、一応説明いたしますと、

>>965 はその直後の >>366で撤回しています。

>>963 と >>968については矛盾はありません。svn status と svn add はたい
てい、プロジェクトのルートで行うので、件のディレクトリ以外も同時に対象
になるからです。コマンドラインだと長いパスを打つのは手間ですが、開発者
はみな、何らかのクライアントツールを使ってますので。

ラッパは作れません。開発者にはWindows機を使っている人もいるからです。

では失礼します。
09829572008/12/26(金) 17:02:50
>>981
うわあ、アンカーが間違いだらけだ。書き直します。

> >>965 はその直後の >>966で撤回しています。
> >>963 と >>977については矛盾はありません。svn status と svn add はたい
> てい、プロジェクトのルートで行うので、件のディレクトリ以外も同時に対象

今度こそ失礼します。お騒がせして申し訳ありませんでした。
0983デフォルトの名無しさん2008/12/26(金) 21:12:03
読んでないけどさっぱり分からん
0984デフォルトの名無しさん2008/12/26(金) 22:23:20
>>983
読んでないなら判るわけがないw
私も軽く流してて、もう飽きた。
0985デフォルトの名無しさん2008/12/26(金) 22:31:34
向いていないって悲しいね
0986デフォルトの名無しさん2008/12/26(金) 23:59:49
この仕事に向いてない。向いてない。
0987デフォルトの名無しさん2008/12/27(土) 15:52:50
リポジトリ側の話なんだけど、
1.5.x 系列でリポジトリを提供しているサーバから
1.4.2 なサーバにリポジトリをそのままごっそり
もっていくとやっぱり問題ありでしょうか?
0988デフォルトの名無しさん2008/12/27(土) 16:55:43
>>987 うん。
レス数が950を超えています。1000を超えると書き込みができなくなります。