Subversion r10 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
08/07/09 10:02:46
Subversionはフリーなオープンソースのバージョン管理システムです。

公式HP
subversion.tigris.org
URLリンク(subversion.tigris.org)

Subversion によるバージョン管理
URLリンク(subversion.bluegate.org)

subversion: Project Status
URLリンク(subversion.tigris.org)

subversion: Subversion Links
URLリンク(subversion.tigris.org)

Version Control Systems Comparison
URLリンク(better-scm.berlios.de)

前スレ
r9 スレリンク(tech板)
r8 スレリンク(tech板)
r7 スレリンク(tech板)
06 スレリンク(tech板)
05 スレリンク(tech板)
04 スレリンク(tech板)
03 スレリンク(linux板)
02 スレリンク(linux板)
01 スレリンク(linux板)

2:デフォルトの名無しさん
08/07/09 10:03:16
■文書
Subversionによるバージョン管理(日本語訳)
URLリンク(subversion.bluegate.org)
svnbook PDF版
URLリンク(psyto.s26.xrea.com)

Subversion批判に対する反論
URLリンク(subversion.bluegate.org)
svn診断への反論
URLリンク(subversion.bluegate.org)
CVSユーザのためのSubversionガイド(wakatonoさん)
URLリンク(slashdot.jp)
FSFS propaganda
URLリンク(arch.bluegate.org)
TortoiseSVNユーザガイド
URLリンク(tortoisesvn.bluegate.org)

■Wiki
Subversionメモ
URLリンク(terai.s55.xrea.com)
Subversion(Saisse's Wiki):
URLリンク(www.saisse.jp)

■記事(ちょいと旧め)
URLリンク(www.atmarkit.co.jp)
URLリンク(www.atmarkit.co.jp)
URLリンク(ukai.jp)
URLリンク(ukai.jp)
URLリンク(ukai.jp)


3:デフォルトの名無しさん
08/07/09 10:04:50
最悪なsvn管理方法トップ10
URLリンク(www.red-bean.com)
日本語要約
URLリンク(www.geekpage.jp)

バージョン管理システムについて語るスレ
スレリンク(tech板)

リーナス・トーバルズ「Subversion ほど無意味なプロジェクトはない」
URLリンク(po3a.blogspot.com)

Git入門
URLリンク(www8.atwiki.jp)


4:デフォルトの名無しさん
08/07/09 11:06:18
>>1

5:デフォルトの名無しさん
08/07/09 11:06:59
あっちだとTortoiseSVNの話しただけで煙たがられるからな・・・

6:デフォルトの名無しさん
08/07/09 12:15:07
>>1

7:デフォルトの名無しさん
08/07/11 01:28:53
TortoiseSVN 1.5.0にバージョンアップしてみた。

file://(日本語が入ったUNCパス)でリポジトリを覗こうとすると
パスがURIエンコードされちゃって見れなくなってしまったよ。
1.4.Xだと問題なかったんだが…。


8:デフォルトの名無しさん
08/07/11 04:47:33
Subversionスレッド テンプレ
URLリンク(www12.atwiki.jp)

9:デフォルトの名無しさん
08/07/11 12:40:03
svn changelist でディレクトリを追加できないのですが、ディレクトリは対象外なのでしょうか?

10:デフォルトの名無しさん
08/07/11 14:03:40
↓のフックスクリプトだけど WebDAV 経由じゃ使えない?
URLリンク(www.asahi-net.or.jp)

WebDAV サーバの中から file:///〜 でのリポジトリ指定でコミットかける
と正常に通るけど、 WebDAV経由(http://〜)だと第3引数(CAPABILITIES)
が空で呼ばれて蹴られちゃう。

サーバ側は rpmforge の mod_dav_svn-1.5.0-0.1.el5.rf, subversion-1.5.0-0.1.el5.rf
クライアントはTortoiseSVNと公式バイナリ(両方とも1.5クライアント)

同じ症例はないですかね?


11:デフォルトの名無しさん
08/07/11 21:05:51
TortoiseSVN 1.5 にアップグレードしたらリポジトリブラウザで違うディレクトリに存在する
2つのファイルの差分が見れなくなったのですが、操作方法が変わったのでしょうか?

12:デフォルトの名無しさん
08/07/11 23:17:07
>>7
TortoiseSVN 1.5.0, Build 13458 - 32 Bit -dev
を入れたら直ってた。

13:デフォルトの名無しさん
08/07/14 17:18:50
コマンドラインで、なるべく自動化させていきたいと
思っているんですが、作業ディレクトリから一旦
エクスポートさせる場合、

"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe"
/command:export /path:"リポジトリのURL"

ってな感じで呼び出すこと自体は、成功しましたが
エクスポート先ディレクトリがどうしてもうまくいきません。
『リポジトリのURL』と『エクスポート先ディレクトリ』を
同時にコマンドラインから指定する方法とかわかる人いませんか?


14:デフォルトの名無しさん
08/07/14 18:23:21
svkではまってます。どなたかお力を。
書くとこここでよい?

svk mirror //mirror/hoge svn://user@host/hoge
//mirror/fuga is not a mirrored path.
といった感じで、以前触った(今は無い)パスが、エラー表示されます。
これから先、何を調べたら、作業したらよいでしょうか?
//mirror/fugaの消し方まちがったのかな?

15:デフォルトの名無しさん
08/07/14 21:42:23
>>13
Winにはsvnコマンドラインってインストールできないの?

16:デフォルトの名無しさん
08/07/14 22:47:51
win用実行モジュール(svn.exe)もあるよ。

17:デフォルトの名無しさん
08/07/15 00:13:29
>14

俺もそれ復旧できなくて何度か ~/.svk 消すしか回避策が見つけられなかった。
嫌になってsvk使うのをやめた。

frameになると嫌なので、是非論はぜひyosoでやってほしいのだが、
最近は svn repo + git svn {rebase|dcommit} というのを実験している。
conflict時の処理に自信が持てないのですが、svkよりはマシそうな雰囲気。
ただ、ログとかファイル名とかの文字コードがUTF-8縛りになるので、わりと嫌。


18:14
08/07/15 09:51:14
>>17
ありがと。
うーむ。今回.svkを消すのはいいけど、今後どうしたものか。
gitかぁ。なにか進展あったらレポお願いします。

19:デフォルトの名無しさん
08/07/15 11:29:47
svn:needs-lock を使ってみたんだけど、ちょっと質問。
これって、ドキュメント等では URLリンク(www.gside.org)
ロックの獲得が必要と説明されているけど、実際には svn co / svn update 時に、読み取り専用で
ファイルが取得されるだけで、手作業で読み取り専用をはずして
編集しちゃえば commit できちゃったのですが、そういうもの?

VSS の排他制御と完全な同類というわけではないですね。

20:13
08/07/15 12:10:30
>>15
>>16
なるほど。TortoiseSVNで実現させようとしているのが、
そもそも間違いなのですかね。svn.exe周り色々調べてきます。
ありがとうございました

21:13
08/07/15 13:00:10
svn.exeで試してみたところ、コマンドラインで
うまくexport出来ました。ただ、管理外のファイルまでは
もってこれないみたいですね。。TortoiseSVNではこの辺りが
指定できたのですが、コマンドラインでも指定できたり
しないのでしょうか?

TortoiseSVNでは、『SVNここに全てをエクスポートする』
というのがあって管理外も含めてエクスポートしてくれます。

22:デフォルトの名無しさん
08/07/15 14:00:37
管理外のファイルがリポジトリ内にあるっていうのは変じゃないか?

23:デフォルトの名無しさん
08/07/15 14:15:34
作業コピーからのエクスポートで管理外を含めたいなら
svn export じゃなくて単純に .svn を除外しつつ xcopy するって事では?
リビジョン指定が必要なのかな。

24:13
08/07/15 14:34:26
>>22
たしかに、考え方自体間違っているかもしれませんね、、
管理外まで扱っていたらsvnの意味もありませんし。。
ご意見ありがとうございます。

>>23
そういう手もありますね。参考になります。
リビジョン指定は、場合によりけりなので、
ひとまずxcopyでやるのも視野に入れたいと
思います。ありがとうございました!

25:デフォルトの名無しさん
08/07/17 00:55:20
2つのサイトでそれぞれ SubVersion を使って同じソースツリーを
管理してるのですが、これを同期させるのに楽な方法は何がありますか?

Aサイト
Aサイトのメンバーが作業
  ↑
  ↑ 1週間に1回Bサイトの担当が変更ソースを持っていってマージ
  ↑
Bサイト
Bサイトのメンバーが作業

Eclipseを使っての開発をしてます。

例えば、Bサイトで、マージ直前に最新ソースを取得して、
AサイトにそのPCを持っていき、EclipseのSVN接続先設定を変更して
シンクさせると同期できる、とかができないかなと考えているのですが。

教えてください。よろしくお願いします。


26:デフォルトの名無しさん
08/07/17 08:49:10
そこはsvkの出番じゃなかろうか。
Eclipseプラグインがないので、
Bサイト内でのコミットはコマンドラインからになるけど。

27:デフォルトの名無しさん
08/07/18 17:02:32
Windows版の Subversion の インストーラー版 が待てど暮らせど出てきませんが
何か出てこなくなった理由があるんでしょうか。
インストールは zip を解凍して 1.5.0 に更新済みなので svn-book.chm の新しいのがあれば
欲しい、というだけなんですが、zip だと svn-book.chm がありません。
1.4.6 の svn-book.chm が for 1.5 になっているからそちらを使い続けてね、ってこと?


28:デフォルトの名無しさん
08/07/18 17:39:18
お前のようなキチガイがいるからだろ
ほんと馬鹿じゃねえの

29:デフォルトの名無しさん
08/07/18 17:45:34
インストーラーが出てくるのが遅いのはいつものこと。
文句があるなら自分で作れ。

30:デフォルトの名無しさん
08/07/18 17:48:38
最近こういう勘違いした人増えてきたね・・。

31:デフォルトの名無しさん
08/07/18 17:51:00
Windows版バイナリに関して何か騒動があったということですか?
python bindings のインストーラは単に setuptools とかの絡みで早々に
出てきているだけだと思ってたんで、他が遅れている事件があったなら
知りたいです。

32:デフォルトの名無しさん
08/07/18 17:51:43
リロードしてなかった。。。

33:27,31,32
08/07/18 22:11:11
馬鹿かもしれませんし、とりあえず文句もありませんが、きっかけにはなりました。
インストーラーはスキル的に無理なので、自前で chm(r3203) だけ作成しました。

chm にフォントサイズを変更するボタンを付けておくと少しは便利ですね。
後で IE が間抜けな事になりますけど。

34:デフォルトの名無しさん
08/07/18 23:58:59
>>19
> 実際には svn co / svn update 時に、読み取り専用で
> ファイルが取得されるだけで、手作業で読み取り専用をはずして
> 編集しちゃえば commit できちゃったのですが、そういうもの?

そう言うものです。

Subversion のロックは、編集時にロックを必要とするファイル(要するにマージできないファ
イル。例えばビットマップファイル等) を編集する時は、svn lock でロックを取得して、編
集が完了したら svn commit すると、自動的にロックが解除されると言うもの。

ただ、これだと俺みたいに物忘れの激しい奴はロックを忘れて編集を始めてしまうことがある。
編集の間に他人がロックしなければ問題なくコミットできるけど、他の人がロックしてしまう
とコミット時にエラーになって初めて気付くというお間抜けなことになって、泣く泣く自分の
やった編集をあきらめるか、ロックをかけた人をなき落とすなり脅すなりしてその人が実施し
た編集をあきらめてもらうしかなくなる。

そこで、svn:need-lock 属性をつけておくと、普通は読取専用になってるからアプリによって
は開いた時に「読取専用だよ〜」とか言ってくれるので、そこでロックを取得することを思い
出すだろうと言う仕組み。(ロックを取得すると読み書き可能になる。)

アプリによっては、読取専用でも何も言わずに編集できてしまい、保存する時にはじめて読取
専用だよ〜って言ってくる奴もあるから、残念ながら万能じゃないけど、Subversion にはファ
イルの編集を始めたことを知るすべがないので、現状のところではこのあたりが精一杯の対応。

35:デフォルトの名無しさん
08/07/19 09:03:04
svn-book.chm を欲しがってただけで何であんなに非難さてれるんだ?

36:デフォルトの名無しさん
08/07/19 10:16:33
暑いからイライラしてる奴が多いってだけだろ。

37:デフォルトの名無しさん
08/07/19 14:08:03
インストーラを提供するのが当然みたいな印象を持たれたのが原因じゃないかな?
作者への感謝の気持ちが少しでも現れてたら良かったのにね

38:デフォルトの名無しさん
08/07/19 15:13:56
夏だなぁ

39:デフォルトの名無しさん
08/07/19 23:40:54
>>38
ですなぁ

40:デフォルトの名無しさん
08/07/20 00:37:16
前々からそうだけど新バージョンが出ると
インストーラーが出ないって延々と愚痴ってくるのが出てたから
またおまえかって感じだったんじゃないの

41:デフォルトの名無しさん
08/07/20 00:47:00
バイナリを出してくれてるんだから十分に有難いぞ

42:25
08/07/20 00:47:42
>>26
ありがとうございます。
svkってのがあるのを知りませんでした。
調べてみます。

43:デフォルトの名無しさん
08/07/24 09:48:09
svnリポジトリの容量を制限したいのだけれども、どうすればいいですか?
Unixコマンドでいえばquotaみたいな奴です。

44:デフォルトの名無しさん
08/07/24 09:55:03
>>43 quota 使えばいいんじゃないの?

45:デフォルトの名無しさん
08/07/24 12:23:44
svn リポジトリが容量制限くらった時の挙動はどうなるん?


46:デフォルトの名無しさん
08/07/24 12:38:47
容量いっぱいになったらそれ以上コミットできない、じゃないかな? たぶん

47:デフォルトの名無しさん
08/07/25 18:08:19
@を含むファイルもしくはディレクトリって Subversion で扱うのは無理?
ユーザのメールアドレスでディレクトリを作っているファイルがあって,
それを扱いたいんだけど, @ 以下の文字列がリビジョン指定として
扱われる場合があってうまくいかない.

@ 以下をリビジョンの指定として扱うのを抑制する方法はないかな?

48:デフォルトの名無しさん
08/07/25 18:10:01
たとえば
svn list file:///repos/hoge/hage/unko@example.com/
のようなことはできない?

49:デフォルトの名無しさん
08/07/25 18:14:57
TortoiseSVN 経由だと @ 付きのフォルダもファイルも扱えるので
何の疑問もなしにやってたら,コマンドラインから
操作しようとしてはまりました.

50:デフォルトの名無しさん
08/07/25 18:36:31
最後に余計な(?)@ をつけることで解決しました.
んが,ペグ・リビジョンについてちゃんと理解してない
自分に気付きました.

51:デフォルトの名無しさん
08/07/25 18:38:10
スレは日記帳ではないことも理解してませんね

52:デフォルトの名無しさん
08/07/25 19:38:30
>>51 ちがうんですか?

53:デフォルトの名無しさん
08/07/26 20:51:54
Subversion 1.5.1 Released

54:デフォルトの名無しさん
08/07/26 21:02:33
Tortoiseで離れた別のディレクトリの修正をコミットするにはどうすれば?
リポジトリがでっかくて、ルートからやるのが苦しい場合。

55:デフォルトの名無しさん
08/07/26 21:21:15
別々にコミットすればよいのでは?

56:デフォルトの名無しさん
08/07/26 21:25:42
同一レビジョンでやりたいんだと思うけど、ルートと言うか
共通の祖先のディレクトリからやるしかない。

リポジトリの構成を見直した方がいいのかも。

57:デフォルトの名無しさん
08/07/26 21:25:52
関連してて両方併せて意味が出る(というか片方だけだとデグレ)修正なので、アトミックにコミットしたいのです。

58:デフォルトの名無しさん
08/07/26 21:27:50
>>56
やっぱダメっすか。リポジトリ構成というよりmavenとかhudsonとかの出番なのかも。

コマンドからやってみるか…。

59:デフォルトの名無しさん
08/07/26 21:40:11
鯖の方を subversion-1.5.1 にアップデートした場合、クライアントPC側が
古い svn コマンドを使っていても大丈夫でしょうか?


60:デフォルトの名無しさん
08/07/26 21:49:26
>>59
鯖がプロトコルバージョンをチェックするからフツウは問題ない

61:デフォルトの名無しさん
08/07/26 22:07:02
svk最高

62:デフォルトの名無しさん
08/07/26 22:33:48
>>54
svn commit PATH1 PATH2 ...
でできませんか?

63:デフォルトの名無しさん
08/07/26 23:05:49
>>54
コミットダイアログにドラッグ&ドロップで追加できたような気がする。

64:デフォルトの名無しさん
08/07/27 00:06:28
TortoiseSVN 1.5.1 age

65:デフォルトの名無しさん
08/07/30 10:08:07
parent/
parent/sub1
parent/sub2

っていうディレクトリがあるとして,
今 parent/sub1 だけをリポジトリに放り込んでるんだけど,
parent 全体をリポジトリで管理したいと思ったんだ.

すでにリポジトリに内にある parent/sub1 や
ワーキングコピー内にある parent/sub1/.svn を
いかしてその上位の parent での管理に移行する
方法ってないかな?

parent/sub1/.svn とか消しちゃって,
parent ごと改めてリポジトリ管理し直すべき?
でもそれだとすでにリポジトリに内にある
parent/sub1 の履歴が生かせないんだよな…

なんかいい方法ないですかね?

66:デフォルトの名無しさん
08/07/30 10:20:31
>>65
現在のリポジトリはtrunk/sub1(或いは単にsub1)になっているってこと?
それなら、parent以下をparent/sub1を除外して追加してからsub1をparentの配下に移動すればよろし。
まぁ、ダミーのリポジトリとファイルを用意して実際に試してみれば様子がわかるよ。

67:デフォルトの名無しさん
08/07/30 10:28:48
>>66
なるほど
特定のディレクトリを除外して import ってのができるのか.

68:デフォルトの名無しさん
08/07/30 10:47:53
import するより add して commit したほうが、コミット前に確認とか調整とかいろいろできて
おすすめ。

69:66
08/07/30 11:05:22
>>67
私もaddのつもりで追加と書いた。で、移動はmoveね。
# 尤も、move自体removeしてaddと等価だけれど。
で、sub1を除外して追加ってのはparent以下にsub1とsub2だけでファイルがないならadd parent/sub2ってこと。
もしparent配下にfileがあるなら、add parent/{sub2,file}とか、その辺は適当に。

70:デフォルトの名無しさん
08/07/30 15:18:05
結構時間かけてググッてるんだが、Subversionって、
svnserveで運用する場合にパスワードをサーバに平文で持つしか無いのかな?
これってかなりイヤ、ってか結構ありえねぇんだが・・
CVSですら/etc/shadowなんかに書かれた暗号化パスワードそのまま使えるのに。

#一応、Apache+WebDAVだとBASIC認証でUNIXのパスワード扱えるからこの問題は起きない。
#けどわざわざApacheを前に立たせるまでもないLANとかだと、高速なデーモンとして動かしたいよな?

おれのググり方が足らなかったら罵ってください。
もし、ほんとに平文しか扱えないならSubversionクソすぎてCVSから乗り換える気おきない・・

71:デフォルトの名無しさん
08/07/30 15:29:27
俺は svn+ssh://... で使ってるので認証は ssh

72:デフォルトの名無しさん
08/07/30 15:38:17
ssh使えよって話だと思うんだが

73:デフォルトの名無しさん
08/07/30 16:04:30
>おれのググり方が足らなかったら罵ってください。
それじゃ遠慮なく。

カエレ!時間掛ければ検索できると言うものではない。ドキュメントくらい読め。このスカポンタン!

74:デフォルトの名無しさん
08/07/30 16:44:49
この手の人って勝手な思い込みで口汚くクソだクソだって喚くからタチが悪い

75:デフォルトの名無しさん
08/07/30 16:56:40
>>71-72
あー、SSH許可してるユーザはこれでいけそうです・・ありがとう
それ以外の奴はhttpで我慢してもらうことにするか・・
・・と思ったらEclipse+Subclipseだとなんかやたら面倒な設定が必要だな
#まぁそれはSubversionのせいではまったくない

まぁ何だ、お前らごめんなさい。


>>73
スカポンタンて古いなwいやどうも失礼した

>>74
失礼した

76:デフォルトの名無しさん
08/07/30 18:16:41
>>70
Trac入れてダイジェスト認証にすれば良いんでない?

77:前スレ979
08/07/30 19:00:52
前スレ最後で、tsvnスキーム登録とかについて
教えてくれたひと、どうもありがとう。
機会があったら試してみるよー。

78:デフォルトの名無しさん
08/07/30 21:11:43
> svnserveで運用する場合にパスワードをサーバに平文で持つしか無いのかな?
> これってかなりイヤ、ってか結構ありえねぇんだが・・

> #けどわざわざApacheを前に立たせるまでもないLANとかだと、


この2つの条件が重なる環境で開発はしたくないなあ

79:デフォルトの名無しさん
08/07/30 22:43:28
>>75
PuTTY + TortoiseSVNと組み合わせるのが超お勧め。
configにこれ入れると吉。
ssh = $SVN_SSH C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe

PuTTY + TortoiseSVNでアクセスできるようになったら、
SubclipseのSVNインタフェースでJavHLを選べば勝手に繋がるようになる。
接続時にpageantに入れた鍵を自動で使ってくれるので、
パスフレーズは1日1回入れるだけでよくなって超楽。

80:デフォルトの名無しさん
08/07/31 08:42:57
サーバのOSがWindowsならば、TracLightning でtrac/subversionを入れるのが手間要らずで楽だな。

81:デフォルトの名無しさん
08/07/31 14:04:17
CVS から Subversion へ cvs2svn を使って,移行作業をしているものです。
このうちのひとつのフォルダのログのコメントが文字化けしてエラーとなり,困っています。
リポジトリの最上位のフォルダが10数個あるうちの,ひとつのみです。
このフォルダは RCS → CVS → CVSnt と移行してきたものです。
現在の運用は,サーバが CVSnt(WinXP) クライアントが Wincvs(WinXP)で,
エラーになるフォルダ以外は,Wincvs(ごった煮版)でインポートし,更新してきたものです。
CVS → Subversion の移行を行った先輩のアドバイスが戴ければ幸いです。
よろしくお願いします。

82:デフォルトの名無しさん
08/07/31 14:12:43
>>81
エラーメッセージは?
ログのエンコーディングと、 cvs2svn へのエンコーディングの指定はどうなってる?

83:デフォルトの名無しさん
08/07/31 14:22:36
>>82
レスありがとうございます。
円コーディングは,以下の指定で実行しています。
--encoding=SJIS
--encoding=iso2022_jp
--encoding=euc_jp
--encoding=cp932
--encoding=utf_8
--encoding=SHIFT_JIS
エラーメッセージは,申し訳ありませんメモっていませんでした。
pass 2 開始直後に,文字化けしたログメッセージが出力され停止します。
現在は該当のフォルダを除外して pass 5 を実行中です(約30時間)
リポジトリが約10Gありますので,エラーメッセージを再現するのに約1時間かかりますが,必要であれば再実行してお知らせします。

84:70=75
08/07/31 14:58:29
無礼をやらかした俺にもこんなにも建設的な意見をくれるあなた方に感動。

>>76
Digest認証もBASIC認証と同じく /etc/shadow とかに書かれてある、
crypt関数で暗号化済みのパスワード扱えたっけ。てか今から実験してみるか。
(開発陣全員のパスワードなんて管理者すら把握してないし、もう一回全員の
パスワード設定し直すなんて言うと文句言われるもんで・・)

もしそうなら是非Digest認証を採用させていただくよ。どうもありがとう。

>>79
おおー。素晴らしい。おれ個人は是非その方法を使わせてもらうことにする。
あとは他の連中がそういうツールを素直にインストールしてくれるかどうかだけど、
まぁ文句言われたらhttp越しで使ってもらえばいいか。


あの、70で失礼な発言したのでフォローしとくが、ディレクトリの移動を追っかけられるのが
Subversionの主たる導入目的だったわけで、この機能は本当にネ申です。
ぼちぼち慣れていこうと思う。みなさんありがと・・

85:デフォルトの名無しさん
08/07/31 21:19:15
>>84
/etc/shadowはPAM経由で使えるはずと思ってmod_auth pamでググったら
こんなの見つけた。

Mod_Auth_External and Mod_Authnz_External
URLリンク(unixpapa.com)

なので、これとBasic認証/Digest認証モジュールを組み合わせればいけるかも。


86:デフォルトの名無しさん
08/07/31 22:00:41
おとなしくApache鯖建てた方が速いんじゃね

87:デフォルトの名無しさん
08/07/31 22:01:26
ドキュメントファイルとかテキストファイルなんかを
バージョン管理してみるのにTortoiseSVNを使ってみています

で、リポジトリに追加してコミット、一旦ローカルファイルを削除して更新して取り出すと
元のファイルと比較して更新日時が異なってしまいます

回避策も見当たらないのでコミット時に属性に更新日時を書き込んで
更新時に取り出したファイルの更新日時を更新するようにしているのですが、
クライアント側フックスクリプトのPATHパラメータで指定されるファイルには
対象となる全ファイルが列挙されるわけではないのですね

というのも、フォルダ単位で更新すると
その対象としたフォルダ名しか取れないので各ファイルを処理できないのです
クライアント側フックスクリプトで更新対象となっている全ファイル名を
サブフォルダに渡って一覧取得する方法はないですかね?

まぁ、次のバージョン?で更新日時が対応されるようなされないような
というブログの書き込みをどこかで見かけたので
それを待った方がいいのかもしれませんがとりあえず今使いたいもので
よろしくお願いします

88:デフォルトの名無しさん
08/07/31 23:34:33
タイムスタンプは対応すると言いつつずっとペンディングにされ続けてるもの
待った方が良いっつうか、期待するだけ無駄

うちらはもうタイムスタンプなんて気にするやつはいなくなったけどな

89:デフォルトの名無しさん
08/07/31 23:56:57
正式版gでるまで
いっそのこと、日本人の誰かがマイナーパッチ作って、
流しちまえよw

90:どこが一言だw
08/08/01 00:20:18
>>83
cvs2svnで移行した経験から一言。
cvsのリポジトリの段階で、エンコードが混ざっているとiconvがエラー起こすからcvs2svnは恐らく失敗する。
特にcvsだとソースとコメントのエンコードが違う状況が発生しやすいので要注意。
# ファイルが巨大じゃなければ混在エンコードにも強いエディタで無理やり修正するとか。
# さもなければ、単体でiconvに食わせてエラーが出たらその周辺だけ抜き出して変換するとか。

91:デフォルトの名無しさん
08/08/01 02:34:45
>>90
今の cvs2svn は(内部的に iconv 使ってるかどうかはともかく)変換に失敗すると
--encoding で渡された順に全部試してくれる。混在しててもエンコーディングさえ
わかっていれば、リポジトリはいじらなくても通せる。

そういうわけで >83 の指定なんだろうけど、 SJIS と cp932 と SHIFT_JIS がばらばらに
指定されてるあたり、もう手当たりしだいって感じだな。リポジトリ内のエンコーディングを
ちゃんと調べてから設定したほうがいい。

92:デフォルトの名無しさん
08/08/01 03:30:05
TortoiseSVN 1.5.2 age

93:デフォルトの名無しさん
08/08/01 08:24:38
ふーん

94:デフォルトの名無しさん
08/08/01 10:10:47
むしろ設定ファイル類をsvnで管理しているときとか,
オーナー,グループ,パーミッションを保存してほしいと
思うときがある.復元してくれなくてもコミットしたときに
どうだったかを記録しておいてくれるだけでもありがたい.

95:デフォルトの名無しさん
08/08/01 12:17:01
属性に保存して、スクリプトで復元させればいいんじゃね?できたらスクリプトを公開をしてくれるとうれしい。では健闘を祈る

96:デフォルトの名無しさん
08/08/01 13:35:33
svnlibだけインストールしたいんだけど何をどうすれば良いの?
build.conf見ると__LIBS__とかあるけどいまいち解らん・・・

97:デフォルトの名無しさん
08/08/01 13:38:39
>>81
上記レスを投稿したものです。
アドバイスしてくれたみなさん,ありがとうございました。
エラーの原因が解りました。
該当フォルダは Pro*C と VC4 で開発をおこなっていたもので,そのうち
*.pre *.mdp (Pro*C と VC4 のプロジェクトファイル)が,テキストファイルとして登録されていたからでした。
ログのコメントが挿入されていて,内容は破壊されていましたが,幸いバックアップがありましたので
これらのファイルを除外して,Subversion へ移行します。

98:デフォルトの名無しさん
08/08/01 14:38:03
別のマシンでfile://スキームのリポジトリを作っていたのですが、
これをローカルマシンで使うことができません

svn ls file://remoteuser@remotehost/svnroot

などとやっても
svn: URL に対し ra_local セッションを開始できません
svn: ローカルの URL 'file://remoteuser@remotehost/svnroot' に含まれているホスト名はサポートされていません
と出てきてしまうのですが

99:デフォルトの名無しさん
08/08/01 14:40:40
お前、アホって言われるだろ・・

100:デフォルトの名無しさん
08/08/01 14:48:12
file://はリポジトリが自分のマシンのファイルシステム上に見えてないとだめだろう
ネットワークマウントするとか
svn+ssh://を使うとか

101:デフォルトの名無しさん
08/08/01 15:20:27
>>98
これはワロタw
file://URL なんてのは無茶だろ兄弟 ネットワーク越えられるプロトコルお使いなされ

102:デフォルトの名無しさん
08/08/01 15:34:03
>>99-101
ありがとうございます
なんかそれっぽかったのでfileでもリモート扱える方法があるのかと
思ってました・・・
リモートはサーバー禁止、マウントも出来ないのでsshで入って使います・・

103:デフォルトの名無しさん
08/08/01 15:44:03
>>97
上記レスを投稿したものです(アホって言われてますw)
おかげさまでエラーとなったフォルダのみを cvs2svn で処理し,首尾よく完了し確認できました。
ここで,もう一点教えてください。
CVS のリポジトリには10数個のフォルダがあり,3G程度のフォルダが2個トータル10G超になってます。
フォルダ毎に分割して処理しようと,2個目のフォルダから --existing-svnrepos を指定して実行しましたが,エラーとなります。
svn のリポジトリを CVS のフォルダ単位に作り,ダンプ→統合したいリポジトリにロード・・・のような作業となるのでしょうか?
良きアドバイスが戴ければ幸いです。よろしくお願いします。

104:デフォルトの名無しさん
08/08/01 16:00:33
アホ=>>98だと思うけど。

エラーの一言で済ませないで
ちゃんとエラー内容を記述するべき。

105:デフォルトの名無しさん
08/08/01 16:26:22
>>104
申し訳ありません,余分なものもあるかもしれませんがエラー時のコンソールを張ります。
----- pass 16 (OutputPass) -----
Starting Subversion Repository.
============================================================
Starting Subversion r1 / 5
Initializing project trunk
============================================================
Starting Subversion r2 / 5
Committing 15 CVSRevisions
New Directory trunk/CVSROOT
Adding trunk/CVSROOT/verifymsg
Adding trunk/CVSROOT/taginfo
Adding trunk/CVSROOT/rcsinfo
Adding trunk/CVSROOT/postcommit
Adding trunk/CVSROOT/notify
Adding trunk/CVSROOT/modules2
Adding trunk/CVSROOT/modules
Adding trunk/CVSROOT/loginfo
Adding trunk/CVSROOT/historyinfo
Adding trunk/CVSROOT/editinfo
Adding trunk/CVSROOT/cvswrappers
Adding trunk/CVSROOT/cvsrc
Adding trunk/CVSROOT/config
Adding trunk/CVSROOT/commitinfo
Adding trunk/CVSROOT/checkoutlist
ERROR: svnadmin failed with the following output while loading the dumpfile:
svnadmin: ファイルが既に存在します: ファイルシステム 'C:/svndata/db', トランザクション 1657-1, パス 'trunk'

以上です,よろしくお願いします。

106:デフォルトの名無しさん
08/08/01 17:08:26
・・・エラーメッセージそのまんまじゃないのか?

107:デフォルトの名無しさん
08/08/01 17:12:04
>>106
CVS リポジトリ内のフォルダー単位に cvs2svn 処理をさせたかったので,
2回目からは --existing-svnrepos パラメータを付けたのですが・・・
他に指定すべきパラメータとか,なにか前処理が必要でしょうか?

108:デフォルトの名無しさん
08/08/01 17:33:50
俺は使ったことないんで知らないが、一部のblogで
そのオプションが効かないって記述があるみたいだけど

というか、それ分割して処理する意味があるのか

109:デフォルトの名無しさん
08/08/01 17:50:15
>>108
レスありがとうございます。
CVSのサイズが10Gと大きいせいか,まとめてハウマッチで実行すると
pass 5(SortRevisionSummaryPass) が,30時間くらい実行しても終わりません。
2G程度のフォルダのみで実行したところ,ディスクアクセスをガリガリやって終了しました。
10Gまとめてだと,ディスクアクセスもほとんど無く,実行してるのか固まってるのか怪しい感じでした。
急いで使いたいファイルが入っているフォルダを先に終わらせて,時間のかかるフォルダを
後でゆっくり移行したいと思ってます。

110:デフォルトの名無しさん
08/08/01 22:23:10
>>88
そうなんですか
バージョンを管理するツールに通しただけで
元の情報(今回の場合は更新日時)が欠落してしまうということに違和感を感じました
他の例で言えば、ファイルを圧縮して解凍しても
更新日時は元のままであって欲しいと思っています
(もし全ファイルの日時を揃える要件があれば、
バージョン管理や圧縮などの仕組みとは別に、日時を揃える方法を考えるかな?)

あと元の質問だったファイルの一覧はやっぱり取得できないようなので
フォルダを起点にチマチマやることにします
どうもありがとうございました

111:デフォルトの名無しさん
08/08/02 00:19:51
タイムスタンプ信仰 vs アンチタイムスタンプ派の喧嘩が始まるから
そのネタは気を付けた方が良い

112:デフォルトの名無しさん
08/08/02 00:58:12
うーん TortoiseSVN って バージョン番号 4桁の方がよいと思うんだけどな〜
それはそうと、1.4系統のサーバーに1.5のクライアントつなげてもまったく問題ないよね
逆の場合はどうなのかな?

113:デフォルトの名無しさん
08/08/02 00:58:48
>>102
「sshで入って使う」などと書いてあるのが不安なのだが、
ログインしてviとかそういう話か?

svn co svn+ssh://remote/path
しろっていう話だぞ。
これならsshdさえ動いていればサーバ類は必要ない。

114:デフォルトの名無しさん
08/08/02 08:11:08
>>110
エクスポート時にはコミット時刻が吹かされるからそれで十分じゃないかと。


115:デフォルトの名無しさん
08/08/02 09:14:23
>吹かされる

116:デフォルトの名無しさん
08/08/02 11:13:54
吹いた


117:デフォルトの名無しさん
08/08/02 13:50:15
>>99-101
fileスキーマでネットワーク越えられないって思ってるようだけど、
Win版なら file://192.168.1.2/svn/root みたいなURLで
CIFSプロトコル(共有フォルダ)経由でアクセス出来るよ。

>>102でsshってあるからWinじゃないだろうけど、
samba上に置くことも出来る。(普通は素直にsvn+sshするだろうけど)

118:デフォルトの名無しさん
08/08/02 16:04:18
ほんとだ
file://server1.home.local/d$/svn/repoA/
で行ける。
実際に管理共有でやるかっつうとやんないにしても、管理共有でも行けるので
事前に共有フォルダにしておく必要すらないのか。

119:デフォルトの名無しさん
08/08/02 18:51:29
管理共有なんか使ってると後々困ると思うぞ。
サーバ側で移動する必要が出たときとか…

120:デフォルトの名無しさん
08/08/02 21:27:51
て言うか管理共有経由でほいほい書ける環境って
なんも管理されてないってことだろ。

121:118
08/08/02 22:16:11
いや、だから、試しただけで管理共有ではやんないってば。。。

122:デフォルトの名無しさん
08/08/02 23:20:30
盛り上がっているところ恐縮ですが,フォルダ単位に cvs2svn を実行する方法って無いんですかね?
Subversion の複数のリポジトリを統合する方法でも良いのですが。
よろしくお願いします。

123:デフォルトの名無しさん
08/08/02 23:30:34
>>122
> フォルダ単位に cvs2svn を実行する方法って無いんですかね?
あるだろ。何で無いと思うの?

> Subversion の複数のリポジトリを統合する方法でも良いのですが。
svnadmin dump → svnadmin load

124:デフォルトの名無しさん
08/08/02 23:34:27
>>123
ありがとうございます。
dump → load で統合できれば最悪なんとかなります。

>>107 の方法だと,エラーになってしまいます。
必要なパラメータとか前処理があれば,アドバイスいただければ幸いです。
よろしくお願いします。

125:デフォルトの名無しさん
08/08/03 00:43:45
>>121
やるかどうかじゃなくて、できちゃうことに問題があると言われてるんだが。

126:118
08/08/03 00:49:43
普段無効にしている管理共有を試しに有効にして試しただけだって。。。
なんでここまで説明しないといかんの。
食いつき良すぎだろ。。。

127:デフォルトの名無しさん
08/08/03 03:26:59
>>124
直接リポジトリに入れるんじゃなくて、 cvs2svn からはダンプだけ作らせといて、
svnadmin load するときに --parent-dir すればいいんじゃないかな?

128:デフォルトの名無しさん
08/08/03 07:36:52
>>126
> 普段無効にしている管理共有を試しに有効にして試しただけだって。。。

やってないだろ?
もし、本当に普段無効にしている管理共有を有効にしたと言うなら、やり方を
書いてくれ。

マジでやってたら、それこそバカだよ。

129:118
08/08/03 09:45:17
これで最後にします。
無効にしたことがバカなのか、試したことがバカなのか、その両方がバカなのか
よく分かりませんが手順は一般的に知られていると思うけど、レジストリ変更して再起動。
URLリンク(www.atmarkit.co.jp)

ただの共有じゃなく管理共有でどうなの? と思って普段しない事で試しただけで、
素朴な疑問でスレの空気を悪くしてすいません。

130:デフォルトの名無しさん
08/08/03 10:15:55
>>129
あなたは全然悪くない。というかとても親切。

131:デフォルトの名無しさん
08/08/03 16:53:44
まぁ、単に揶揄われているだけなのに気付かなくて、必死に理解してもらおうとする姿勢は好感が持てるね。

132:デフォルトの名無しさん
08/08/03 17:52:17
そういえばタイムスタンプってプログラム開発だと気にならないけど
それ以外の用途だと気になるのかもしれんなぁ


133:デフォルトの名無しさん
08/08/03 20:43:26
差分のみにくい、ドキュメント、実行モジュールやDLLで気になるからな

134:デフォルトの名無しさん
08/08/03 22:58:17
雰囲気悪いスレだな。

135:デフォルトの名無しさん
08/08/03 23:11:08
タイムスタンプでバージョンを示すとかあったなー。
vz?



136:デフォルトの名無しさん
08/08/03 23:20:50
いや、それに限らず割とポピュラーかと。

137:デフォルトの名無しさん
08/08/04 14:24:17
バージョン管理下のファイルだとタイムスタンプよりリビジョンを気にするので気にならないが、
バージョン管理下にないファイルだと気になるな。

Exportだと更新日時が最終コミット時になるので
個人的には今の仕様がベスト。

CheckoutやUpdateで更新日時がコミット時に設定されると
makeが変な動きをしそうだし。

138:デフォルトの名無しさん
08/08/04 20:59:55
>>137
Exportってバージョン管理外のファイルにする方法なのでは?
CheckoutやUpdateってバージョン管理下にある状態なのでは?
…って、そもそも何か勘違いしてるのかな… orz

139:デフォルトの名無しさん
08/08/05 08:41:31
>>138
バージョン管理下にあるファイルのタイムスタンプは、バージョン管理が更新するものだと思って諦める。ということさ。

140:デフォルトの名無しさん
08/08/05 11:28:32
諦めるっつーか、管理下にある場合は更新してくれた方がいいじゃん。

141:デフォルトの名無しさん
08/08/05 11:54:27
>>140
ソースファイルの場合はタイムスタンプ更新した方が、makeに都合が良い。
ソース以外(make管理外)のデータやドキュメント類は、タイムスタンプ更新しないほうが都合が良い。

142:デフォルトの名無しさん
08/08/05 22:11:43
>ソースファイルの場合はタイムスタンプ更新した方が、makeに都合が良い。

そうかなー…
これこそオリジナルタイムスタンプのままの方が良いきがするけど

143:デフォルトの名無しさん
08/08/05 22:30:52
makeが誤動作するじゃないか

リビジョンで管理すると複数のファイル間の関連も一目でわかるから便利じゃん。
タイムスタンプだけでは最新かどうかわからないじゃないか。

144:デフォルトの名無しさん
08/08/05 22:55:15
もうタイムスタンプ議論はうんざり・・・・
いったいいつまで続けるんだよ

145:デフォルトの名無しさん
08/08/05 23:11:48
>>143
後学のために教えて
makeが誤動作するということはバージョン管理システムを使っていない場合は
makeが誤動作しまくるの?それともmake前にタイムスタンプを揃えるという処理をしてる?
揃ってもいいのかもしれないけど(というか気にしないでもいいのかもしれないけど)
元のままではダメだというのがよく分からない…
(気にしないなら元の情報が残っていてもいいのでは…)

>>144
単なる罵り合いだの罵声だのではなく、
それぞれの可能性や考え方がやりとりされている分には勉強になりますが…ダメですか?

146:デフォルトの名無しさん
08/08/05 23:21:33
以前からこのスレでタイムスタンプ信仰者とアンチタイムスタンプとで
罵り合いが続いてたから昔から見てる人からすると溜め息しか漏れないかと。

147:デフォルトの名無しさん
08/08/05 23:23:54
いや、updateで取り出しているのにタイムスタンプが更新されていなかったらmake対象にならないのが問題ってことじゃないのかね。

148:デフォルトの名無しさん
08/08/05 23:31:21
>>146
あ、すみません 以前の罵り合いってのを知らなかったもので…
双方のシチュエーションや経験談を参考にさせてもらって
自分のシチュエーションではどっちが妥当か?を考えるのにいいな、と思ったのですが…

149:デフォルトの名無しさん
08/08/05 23:39:28
>>147
まぁ実際、svnが更新するタイムスタンプも怪しいけどなw
かなりでかいソースツリービルドした時、うまくいかない事が
あってからあまりsvnのタイムスタンプ管理は信じない事にしてるw


150:デフォルトの名無しさん
08/08/06 00:34:25
>>145
リビジョンを進めようが後退させようが更新されたファイルのタイムスタンプは現時刻になる。この場合makeが正しく動作する。


151:デフォルトの名無しさん
08/08/06 02:09:58
post-commitで、コミットすると自動的にweb公開領域にチェックアウトするようにしてるんですが、
コミットするたびに全ファイルをチェックアウトするのにかなり時間がかかってしまいます。
コミットしたディレクトリとかファイルのみチェックアウトするなどして、時間短縮できないでしょうか・・・。

152:デフォルトの名無しさん
08/08/06 02:49:02
>>151
1) Webサーバの設定で、.svnへのアクセスを拒絶する。
2) チェックアウトではなくupdateする。
3) svnlookの出力を加工して、updateする対象を絞り込む。

153:デフォルトの名無しさん
08/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日前)だと

154:デフォルトの名無しさん
08/08/06 10:14:47
>>153 続き
foo.cのタイムスタンプがB君編集時刻(2日前)だと foo.c より foo.o が新しいので、
make は foo.c を再コンパイルせず、foo.o は B君編集前のfoo.c から生成された内容のままとなる。これがまずい。

155:デフォルトの名無しさん
08/08/06 12:33:13
てーか、updateしたら全コンかけね?フツー

156:デフォルトの名無しさん
08/08/06 12:39:37
makeの存在意義を真っ向から否定してるな

157:デフォルトの名無しさん
08/08/06 12:40:00
フツーしない。


158:デフォルトの名無しさん
08/08/06 12:54:13
>>152
ありがとうございます。
おかげでsvnlookで更新したファイルのリストを取得出来たのですが、
これと svn updateをどうからめてやれば、
更新ファイルのみを対象と出来るのでしょうか…


159:デフォルトの名無しさん
08/08/06 13:00:26
何でも聞かないと出来ないやつはいい加減あきらめろ

160:デフォルトの名無しさん
08/08/06 13:11:42
>>158
公開用のフォルダがワーキングコピーになっているなら、
svn update するだけで いいんでない?
後は、 >>152 の 1) を対策して終わりでしょ?

なんでわざわざチェックアウトし直す必要がある?


161:デフォルトの名無しさん
08/08/06 16:13:26
bluegateまた落ちてんのかよ

162:デフォルトの名無しさん
08/08/06 16:29:56
URLリンク(www.caldron.jp)
のほうが新しいバージョンに対応していていいんじゃない?

163:デフォルトの名無しさん
08/08/06 19:03:06
TortoiseSVN 厨です。
tsvn:logminsize を自動的に付与する為の設定って無いですかね?
これ設定しておかないとログ入れない奴がたくさんいるんですよ。

164:デフォルトの名無しさん
08/08/06 19:18:43
post-commitでログなしなら弾くようにすればいいじゃん

165:163
08/08/06 19:38:16
>>164
pre-commit で模索中です。
svnlook でトランザクションのログを捕らえるところまでは確認できましたが、
ログの長さを調べる バッチファイルの記述の仕方がわかりません。
現在調査中です

166:デフォルトの名無しさん
08/08/06 19:39:37
cscriptでVBS呼ぶなりすればええやん

167:デフォルトの名無しさん
08/08/06 20:25:18
>>165
ちょっとはぐぐれよ・・・
URLリンク(www.spring-aki.com)

168:デフォルトの名無しさん
08/08/06 20:41:20
>>167
探し方がたりませんでした。
ありがとう。


169:デフォルトの名無しさん
08/08/07 09:23:21
Emacs 22 を使っています.
ちょっとやりすぎな変更をしてしまったとき,
svn revert で最初に戻すのは嫌だし
かといってそのまま svn commit もしたくないし,
というわけで svn diff で自分がやらかした変更を
確認しながら部分的に元に戻したりをしているんですが,
なにか便利な Emacs で使えるツールってありませんか?

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

vc-diff すると単に svn diff の結果がバッファに
表示されるだけで萎えます.


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4747日前に更新/232 KB
担当:undef