subversion バージョン管理【サブバージョン】
■ このスレッドは過去ログ倉庫に格納されています
バージョン管理システム subversionについて語ろう。
バージョン管理システムの一つにCVSがあるが、ディレクトリの移動の管理や
ネットワーク対応などでやや難がある。
これらCVSの問題点を解決すべく開発されているのがSubversionである。
オープンソースソフトウェアの開発においてはCVSが多く使われているが、
Subversionを利用するオープンソースプロジェクトも急速に増えている。 今日みかけたsubversionの本で、
バックアップソフトsubversionと謳っている本があって萎えた。 重複ではないけど、Linux 板でやる必要なくね? ちょっと話題を変えて再利用・・・って思いっきりソフト名入ってるんですね。
現在使用(しようとしている)のはWindows版なので厳密には板違いですが、お力になっていただければ幸いです。
当方は今、Windows上でJava(Eclipse RPC)の開発をしているのですが、バージョン管理にWindows版のsubversionを使いたいと思っております。
インストールは恙無く終わり、ローカルマシン上では「file:///〜」という指定で無事チェックイン出来たのですが、リモートマシンからのアクセス(「svn://(IPアドレス)」と指定してのsvnからのインポート)で出来ません。
subclipseのコンソールには「svn: Can't connect to host (svnserverが動いているIPアドレス)」と表示されています。
おそらくリモートでアクセスするには何かしらの設定が必要なのではないかと考えたのですが、ネット上にある情報はほとんどがWebDAVを使用するものばかりです。
残念ながらこのマシンでは(他の開発で必要なため)IISが必須なので、可能な限りapacheは入れたくありません。
(共存は可能なコトは知っていますが、このためだけにインストールするのは少し悲しすぎます(T_T))
ということで、何か情報をお持ちの方がいらっしゃればアドバイスをいただければ幸いです。よろしくお願いします。
また、必要な情報などありましたらご指摘ください。
>>10
コマンドラインからバッチを起動しています(現在はタスクで起動時に実行)
>>9にも書いたとおり、「file:///〜」は通っているので、多分大丈夫だとは思うのですが……
確認する方法、ご存知でしょうか? Apacheをインストールしなさい。
Apacheをインストールするのが正しい方法なので躊躇ってはいけない。 >>11
>>>9にも書いたとおり、「file:///〜」は通っているので、多分大丈夫だとは思うのですが……
subversionがローカルのファイルを直接読んでいるので何の参考にもなりません。
file:///a.htmlがWebサーバを通っていないのと一緒。 >>14
……ごめんなさい、当たりでした(T_T) subversionって、ローカルでアクセスするだけならsvnserve立ち上がってる必要は無いんですね。
で、どうもタスクによる指定では上手く動いてくれないので、vectorからサービス化のフリーウェア拾ってきてサービスにしてみたところ、無事に動きました。
ありがとうございました。 subversion - バックアップツール
とかいう本が出てたけど。。。どうなの? まぁ、そういう使い方しても法律に触れるわけではないが...。
タイトルを見る限り、決してオススメできないな。 amazonで "Subversion公式ガイド" の訳者上平氏の本の紹介文を見てみたが
こっちもバックアップツールって書いてあるな。
http://www.amazon.co.jp/o/ASIN/4798013730 ファイルごとのバージョン管理が出来ないのは仕様ですか? >>22
ファイルごと別々にcommitするか、CVS/RCS使え。 >>22
一遍、窓の無い壁が軟らかい部屋のある病院で見てもらえ。 >>23
そちらも検討してみるですよ。ありがとう。
>>24
日本語でおk >>24じゃないけど
ヤバイ患者を扱う精神病院ってのは
飛び降り防止の為に窓がなかったり、
ぶつかってケガ/死ぬのを防ぐ為に壁がやわらかくなってたりするらしいよ。
前テレビで見た。
ねー、subversionって前のリビジョンがいらなくなっても消すこととかできないよね?
例えばリビジョン1のときに1Gのファイルをcommitして、次のリビジョンでそれをdeleteしたとするじゃん。それでもリポジトリのサーバの方にはその1Gのファイルは残ってしまうわけだよね…。
もしくはもう昔のバージョン情報はいらなくて、HDD削減のために昔のバージョン情報を消したいとかそういう使い方はできないのかな? >>30
dumpしてダンプファイルを編集。
その後loadすればいい。
それ以外の方法は無い。 >>31,32
なるほど。確かにそれなら消える罠
でも例えばそれでリビジョン1を消したとして、ローカルコピーの方からリビジョン1を参照しようとした場合とかってsubversionの予期せぬエラーみたいにならないかな? そういうのは、昔のバージョン情報がいる、って言うんじゃないかな? svnのクライアントコマンドってブックマーク機能ある? Windows上でTortoiseSVNを使ってるんですが、(サーバーもWindows上)
Thumbs.dbを削除したいんですが、どうすればいいですか?
というのは、WindowsのExplorer上からだとThumbs.dbが見えないため
右クリックで削除の方法が使えないからです。
DOSプロンプトでコマンドラインから消す方法もありますが、数が多いという
こともあり、できれば作業者側のPCで消せる方法を探してます。
>>40
フォルダオプションで隠しファイルを表示しない、か、保護された〜のチェックを外せば良いよ。 >>38-39
わたしが思いますに、>>36はmoveとかmergeとかで毎回URLタイプするのが面倒なので、
登録しておく方法はないか、と聞いているのではありますまいか。
moveとか:
作業コピーでやってコミットしなさい
mergeとか:
環境変数使いなさい
これならFAQなんですが。もし作業コピーに元のURLが保存されてることを知らないなら、
馬鹿ということになりますが、いくらなんでも人をそこまで悪く言いたくない。 おまえらLinux板でどうどうとゲイツOSの話すんなよ。
TortoiseSVNを使ってるならム板いけ >>43
すんません。Windows板にもソフト板にもなかったんで・・・
ム板ってどこですか???? >>46
うぉ!なんて親切ちゃんなんだ!今度からそっちで聞きます。 英会話の独学してたら急に気になったんだけど、Subversionて英語発音だとサッバージョンになる? ここはsvn上のソフトのエラー報告とかも出きるの?
project001とproject002という2つの全然別のプロジェクトがあって、それをsvnで管理したいとき、
file:///home/hoge/svnで指定する箇所は分けるべきなのですか?
以下のようにやってはダメ?
$ svn import /home/hoge/prj001 file:///home/hoge/svn/ -m "project001 start"
$ svn import /home/hoge/prj002 file:///home/hoge/svn/ -m "project002 start"
それは管理方針の問題だから駄目ではない。
まともな管理者が利点と欠点を理解して
それを選択したのならきっとそれがベストな方法だ。 全部自分が個人としてやってたことなのですが、
自分のプロジェクトで、今まで1つのSVNディレクトリで管理してたのですが、
管理するプロジェクトが1つ増えたので、同じディレクトリに追加したところ、
チェックアウトしてみると、2つのプロジェクトが混ざって(一緒になって)
チェックアウトされてしまうようになりました。そこで現在は、SVNディレクトリを
2つにわけ直してやってます。ですが、CVSだとCVSROOTは1つで済むところ、
SVNだとディレクトリを分ければならない、というのはちょっと不便な感じです。
CVSROOTっていうのは環境変数のこと?
上の方法で import しているなら、
$ svn co file:///home/hoge/svn/prj001
とやれば prj001 がチェックアウトできるのでは?
チェックアウトしたときにroot情報はワーキングコピーに
記録されるから環境変数を弄る必要は無い。
勘違いしてたらすまん。 svnserveで配信してるんだけど
一回パスワードとか入力して認証した場合、
かなり長い間ノーパスでアクセスできるよね?
この認証ってどこで管理してんの?
認証してる期間が長くてコワス Emacs で,ワーキングベースとワーキングコピーの内容を
ならべながら diff とって,「あ,ここはやっぱり
変更するべきじゃなかったから元に戻そう」という作業を
簡単にできるモードってありませんでしょうか?
svn-status-* コマンドは使っているのですが.
それ以外に何かあれば教えていただきたく. あ,ちなみに今は svn diff の結果を見ながらやってるんですが,
ウギャー!と発狂して発作的に svn revert してしまい
放心状態になることがあります.screen で分割してあれこれ
工夫はしてみるんですが,視認性が悪く・・・
Emacsタン!助けて! svkというのを使ってみたが、
これ使いにくいな。copyとかdiffとかで
オプションがsvnと違うので面倒。
でも履歴も含めてもって来る方法がこれしかないので、仕方ない・・・
>>60
ありがとう。
git-svn/hgsvn/bzr-svnとか色々あるのね。
結局、オプションに互換性があるわけでも無いから
苦労して、svk入れる必要はなかったかも・・・
お気に入りのbzrが対応してたのは知らなかったよ。 最近リポジトリへのアクセスがめちゃくちゃ遅いと思ったら、
クライアント側のIPアドレスが逆引きできてないだけだった・・・
プロバイダに連絡してすぐに直してもらったけど、
そういや sshd は UseDNS yes がデフォだったんだな。 ワーキングコピーの形式はバージョンによって
変わる可能性があるようだけど、リポジトリのほうは
そのままでも問題ないのかな?
たとえば 1.3 時代に作ったリポジトリ、
そのままずっと運用し続けているけど、
これからもクライアントのバージョンが
1.5, 1.6, ...., 3.1415 と上がっていても大丈夫なんだろうか。
とちょっと不安。 さっき大きめの更新を svn+ssh でコミットし始めて、
つけたログメッセージが気に入らなかったから
Ctrl+C で中断したんだけど、Broken pipe の表示と
ともにコミットされた旨の表示も。
本当にきちんとコミットされているんだろうか。なんか不安だ。
一応 svn update してみても何事も起こらないんだけど。
>>64
ログメッセージだけだったら後から幾らでも直せるのに え?そうなの?
ダンプして強引に修正とかじゃなくて? >>67 ちょ,おまww
質問してるのは俺だってば ワーキングコピーにはワーキングベースが入っていますよね.
つまりざっくりと容量が2倍になっているわけで,
とりあえず変更するつもりのものがないディレクトリに関しては
ワーキングベースにファイルそのものじゃなくてハッシュ値だけ
持っておくとかで容量を節約できればなぁと思うんですが,無理?
CoW 機能を持ったファイルシステムとかならもっと
うまくやれるのかもしれない. 一応その辺の話も出てはいるのか・・・
ワーキングベースのファイルを空ファイルにしておく
という work around は面白いな。
でも不用意にこれやると、リポジトリにめちゃくちゃな
差分がコミットされてしまう予感。 CentOS 5 で使える svk の rpm パッケージって無いでしょうか? >>48
厳密にはヴィジュアルヴェーシックになるよ 今日初めてsvn使ってみたのですが
svn addとかsvn moveとかいちいちやるのが面倒だと思いました
あるディレクトリ以下変更が加えられたファイルすべてを自動的に
commitする方法はないのでしょうか? Windows環境でtortoiseを1.5にしたら日本語フォルダにしていたリポトロジ
がリポトロジブラウザで参照できなくなりました。
コミットや差分は正常にできます。
日本語フォルダ(パス)で運用されているかたはご注意ください。 >>76
その変更ツリーのトップにいってコミットすれば
更新されたファイルを自動的にコミットしてくれますよ
>>80
あんたはまず「情報リテラシー」から勉強し直した方がいい。
リポトロジ?w >>82
それを言うなら情報が付かない只のリテラシーをなんとかすべきだろう
どっちかというと情報リテラシーに問題があるのは>>81だな >>82
すいません。
情報デリカシーから勉強してまいります。 Windowsで、作業コピーのファイルを移動する時には、
1.コピー先のフォルダが作業コピー内でaddなりcommitされている事を確認
2.コピー元のフォルダを開く
3.コピー先のフォルダを開く
4.コピーしたいファイルなりフォルダをマウス右ボタンでドラッグ&ドロップする
5.移動に関する小さいメニューダイアログが出るので一番上を選択する
6.コピー先のフォルダをコミットする このスレ、01-03はLinux板にあったのね。
古巣に舞い戻ってきたんだ。 UNIX板に置いてあると、どのスレもまともに機能しなくなるから 次スレ立ってないのに埋め始める馬鹿がいたから
避難先として誘導しただけ じゃあ仕事中のオレがリスクを背負いながら
元の巣に建てるよ ■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
mod_dav_svn 経由だと
どれくらいのファイルサイズまでコミットできるんだろうか.
いつも失敗して結局 svn+ssh でコミットしている.
最初の import 以降の差分だけならもんだいないんだけど >>99
Apacheの設定の問題じゃないの?
最大リクエストサイズに上限が設定されてるとか。 俺はでっかいファイルのチェックアウトでも問題出るよ。
300MBくらいの(笑
apache の error.log を見るとこんな感じ
同時刻に必ずこの二つがペアになって発生する
[error]Provider encountered an error while streaming a REPORT response. [500, #0]
[error]A failure occurred whiledriving the update report editor [500, #190004]
なんなんだろうね。 mod_dav_svn を使ってます。
いま、各リポジトリの conf/authz にアクセス制御を書いています。
リポジトリは複数 repo1 repo2 あるので、
repo1/conf/authz、 repo2/conf/authz のようにアクセス制御の
ファイルが分散しています。
このとき SVNParentPath を使ってこれらのリポジトリを
ひとまとめ(?)にしたいのですが、アクセス制御のファイルは
それぞれ別別にしたままにできるのでしょうか?
AuthzSVNAcccessFile ディレクティブは一つしか書けなくて、
そこで指定したファイルに [repo1:/hogehoge] のような
セクションでリポジトリを指定するしかないのでしょうか? tcpdump やら wireshark やらであれこれ調べ上げた揚句わからず.
でもでっかいファイルをコミットしたときは TCP が FIN で
終わらず40秒くらいして RST が送られてきて切断している
ことがわかった.
で,いまさらだけど http://localhost/あれやこれや で
コミットしてみたらでっかいファイルでも問題なかった.
WAN 経由でも PPTP で直接つなぎこんだら問題なかった.
もしかしてファイアウォールのせい?
なんか IDS で誤検出されちゃってなんていうレポートもあるし.
http://www.webmeisterei.com/friessnegger/2007/12/12/svn-could-not-get-next-bucket-brigade/
In our case the Intrusion Protection has matched patterns
when commiting certain files and svn:externals properties. リポジトリにコミットされたファイル名を検索したいのですが、
いい方法はありますでしょうか。
>>104
チェックアウトして展開された中を検索する? >>105
超ムダ。
どうせならせめて
svn info -R --xml
チェックアウトしてない状態です。
tracなど使うとできるんでしょうか。 >>104だけみるとsvn logでいいとしか思えない。
>tracなど使うとできるんでしょうか。
tracは魔法じゃないからね。 >>108
だから↓じゃダメなのかよ。
svn info -R --xml
引数にレポジトリURLを指定できるんだが。
>>108
だから↓じゃダメなのかよ。
>svn info -R --xml
引数にレポジトリURLを指定できるんだが。
>>110-111
大事なことなので2回言いました!
うそ。
なんかエラーが出たんで書き直したら
こんなことに。orz ちょいと教えてください。
過去にcommitしたファイルをdb上から削除する方法ありませんか?
作業していたファイルのコミット数が多くてdbファイルが肥大化しました。
そこで、直近にcommitされたファイルだけ残して、それより古くcommitされたものを
db上から削除したいのです。 >>114
ほんとに直近のものしか必要ないなら、exportして新しいリポジトリにimportしたら? 新しいリビジョンのみdumpした場合branchやtagのデータも含まれるからかサイズは膨張するのがちょっと不満 svndumpfilterでいらない子は捨てられるんじゃないの?
差分のエクスポートをしようと思い、ログを表示し、リビジョンを比較をクリックしたら、
server does not support retrieving information about the repository root
というエラーが出て、差分のエクスポートができません
これはどういったエラーでどのように治せばよいかご教授ください
使用ソフトは、TortoiseSVN Subversion クライアント for Windows Version 1.4.8です
>>101
ローカルへのコピー時ってXPにDAVからのダウンロードファイルサイズ制限なんてものがあるらしいね
レジストリで変更可能
関係ないか エラーが出るパターンがわかりました
他の人がインポートしたプロジェクトはリビジョンを比較できますが、
自分がインポートしたプロジェクトはエラーが出て見れません Apache + DAV のAutoversioning環境で、pre-commit でエラーを返しても
PUTに201を返してしまって、ユーザに成功したかのように見えてしまうんですが
INTERNALSERVERERRORなどを返すのが正しいと思うけど
そんな設定が見あたらなくてこまってます
誰か知りませんか? svk mirrorでうっかりsvnリポジトリのパスをtypoしちまったのだが、これ直すのどうすればいい?
svk mirror //hoge http://repos.example.net/repos/typo
とかしてしまって、
svk sync //hoge
したら
HTTP Path Not Found: 〜
といわれる状態です。//hogeにhttp://repos.example.net/repos/hogeを
対応させたいです。 DAVアクセスで、Windows Explorer にエラーメッセージを渡す方法しりませんか?
linux上でsvn co http://*********を実行すると
下記のエラーがおきます。何ででしょうか。
svn: svndiff データの解凍に失敗しました
check in するとき、ステータスがAまたはMのものをすべてまとめてコミット〜みたいなことがしたいんですが、そういうことができるコマンドオプションってありませんでしょうか??
ご教示をばいただきたく>< >>129
フォルダをコミットすればいいんじゃないか >>139,140
それじゃAやMじゃないものも混じってしまうな。
さらにコンフリクトがあるとコミット自体出来ない。 ふつーにgrepで絞ってしまうなぁ。
svn add `svn status | grep '^?' | grep -v '~$'`
ぐらい普通に打っちゃう。
>132
A や M だけ commit したい理由って何?
どーせ設定するときに >133 みたいにする必要があるけど changelist を使うと多少見通しが良くなるかもね。 (´・ω・`) しらんがな
129のお題に完全な回答になっていない可能性を示唆しただけやし
129がそんな変則的な事をしたいのかも分からんし psvn.el 系なら *A とか *M でできるけどなぁ
レスありがとうございます。お礼遅れてすいません。
こういうことやりたい理由は3、4個のファイルを編集してコミットしたいとき、全部打ち込むのが面倒だからです。
>>133
`svn status | grep '^?' | grep -v '~$'`
これだと、出力結果が
? a.txt
? b.txt
みたいになって、svnに渡すとエラーが出ませんか?? >137
cut か awk か sed あたりが必要だね。 あーごめんごめん。awk '{print $2;}' をつけてる。
試さずに書くもんじゃないね‥‥‥。
リポジトリの名前を変更する事はどうやったらできるんでしょうか
リポジトリに名前ってあった?
リポジトリurlをエイリアスできる機能があったらほしいけど 名前はあるけど、FSFS なら普通にサーバー側でリポジトリの
フォルダをリネームするだけじゃないの? リポジトリディレクトリにシンボリックリンクを張ればいいと思う
>>142
多分BDBでもそれでうまくいく リポジトリからチェックアウトしてコピーファイル置くローカルの作業フォルダだけを
削除したい場合はどうすればよいのでしょうか?
リポジトリにある大元のデータも消したい場合は右クリックのsvnのコマンドから削除
すればよい、というのは分かったのですが、ローカルの作業フォルダだけを消す方法は
分かりませんでした。 >>144
普通にOSコマンドで削除すればいいだけだと思うが。 Subversion 1.5.6 って,どんなバージョンアップですか。
教えて英語得意な人。 Visualsvnに関する質問はスレチでしょうか? > TortoiseSVN 1.6.2, built against Subversion 1.6.2. Released 9. May 2009.
なのに
> The latest release of Subversion is 1.6.1.
珍しいこった EclipseのプラグインはSubversiveでいいの? >>156
Subclipseもあるよ。好みの方を使えばよい。
MacOSX上ではGUIでまともに使えないのか。
CUIにがて。 >>158
開発環境ならXcode、Eclipse
単体ソフトならVersions、Cornerstone
Finder拡張ならSCPlugin
Path Finderも対応してる。
Cent OS 5に、Subversion 1.6.5をインストールしたのですが、
Apacheのmod_dav_svn.soの読み込みが、下のエラーで成功しません。
どなたか解決方法ご存知の方よろしくお願いします。
apachectl: Configuration syntax error, will not run "restart":
httpd: Syntax error on line 206 of /etc/httpd/conf/httpd.conf: Cannot load /usr/lib/httpd/modules/mod_dav_svn.so into server: /usr/lib/httpd/modules/mod_dav_svn.so: undefined symbol: svn_log__update
Syntax Errorってんだから該当箇所(206行め)を提示するのが筋。
>>160
「mod_dav_svn.soのモジュールのロード時に、svn_log_updateってシンボル (=エントリポイント) が無い」ってエラーが出てるね。
どうやってインストールしたの? CentOS 5.xにはSubversion 1.6.xは用意されていないだろうから、
DAG Repository使ったの? それとも自前でビルドした? 他のOSのRPMを無理矢理入れた? >>161
206: LoadModule dav_svn_module /usr/lib/httpd/modules/mod_dav_svn.so
207: LoadModule authz_svn_module /usr/lib/httpd/modules/mod_authz_svn.so
です。
>>162
自前ビルドです。
./configure --with-apr-util=/usr/local/apr-util/ --with-apr=/usr/local/apr/
make
make install
でインストールしました。 >>163
Apache httpdを自前で入れた
→httpdとSubversionの全てを知るくらいがんがれ。
Apache httpdはCentOSのを使ってる
→(1)開発パッケージ(*-dev)やconfigureのオプションが足りないのでは。がんがれ。
→(2)あきらめてDAG (rpmforge) のmod_dav_svn-1.6.5-0.1いれたら? >>163
ldd /usr/lib/httpd/modules/mod_dav_svn.so
Subversionスレの話題から離れてきたな >>164-165
rpmforgeからインストール後、httpd.confに
LoadFile /usr/local/apr-util/lib/libaprutil-1.so
LoadFile /usr/local/apr/lib/libapr-1.so
を追加することで成功しました。ありがとうございます。 誤ってリポジトリを消してしまったんだがどうすればいい? 権限そのままでupdateする方法ないですか?
test.txtのグループがtest ユーザーがuserで、
rootでupdateかけたらユーザーもグループもrootになってしまうのですが、
ユーザーとグループはそのままにしておきたいのです リポジトリに入れた時点でそういうメタ属性はなくなるので無理。
OSに付いてるアーカイブツールやバックアップツール(tarやdump等)を検討ください。 >169
使った事無いけど、contrib にある asvn が使えるかも。 subversionでコミット/チェックアウトする際にあるフォルダやそのサブフォルダを更新の対象から外すことは可能でしょうか。
TortoiseSVNというのをインストールせずに、コマンドで出来ることがあれば教えて頂けないでしょうか。宜しくお願いします。
-N [--non-recursive] : 廃止予定です。--depth=files または
--depth=immediates を使用してください
--depth <ARG> : 操作の対象を深さ <ARG> ('empty'、'files'、
'immediates'、'infinity' のいずれか) に限定しま
す
svn commit helpですぐ出てきたよ
訂正
×svn commit help
○svn help commit >>172
subversionのコマンドはWindowsにはついてこないので、別途入れる必要がある。
次のWebサイトからWindows 向けバイナリを取得できる。
WindowsならCollabNet Subversion Command-Line Client v1.6.5 (for Windows) を
インストールし、あとは >>173 のとおり。
ttp://subversion.tigris.org/ チェックアウト中に画像の多く含まれるフォルダで止まってしまうんですが、
単体ファイルのサイズが大きいとそういう事あるのでしょうか。 ttp://terai.xrea.jp/Subversion/WinMerge.html
このページを参考にWinMergeをSubversionのdiffとして使用する設定を行ったのですが
svn diff test.txt
はうまくいきますが
svn diff -r 100 test.txt
はWinMergeのファイル指定のダイアログが表示されうまくいきません。
どうもリビジョン100のファイルが取得できないようです。
どなたか原因がわかる方いらっしゃいませんか?
182です。
すみません、ここはLinux板でした。
移動します。 post-commitでupdateかかったパスを取得できないでしょうか。
そのパス以下のみsvn ?upしたいのですが。
全体やるとえらい時間かかるので・・。 svnで、現在のリビジョン番号を取得する方法はないでしょうか。
svn info -r base
で表示されるリビジョン番号を取得して、それを引数にプログラムを起動したいのです。 >184
svnlook changed 使えば?
>185
その svn info -r base の出力結果を解釈するんじゃ駄目なのか? subversionが作成する管理フォルダ .svn 以下全てのパーミッションを
drwxrwxrwxにしたいのですが、どうすれば可能でしょうか。
プロジェクトのルートで
$ find . -name .svn -type d -exec chmod -v 777 '{}' +
Linuxなら使えると思うけど、もし最後の + が使えなかったら
$ find . -name .svn -type d -print | xargs chmod -v 777
あ、「以下すべて」か。chmod に -R オプションも付けて。
phpでフォルダ作成のプログラムを使用しているのですが、
所有者とグループがapacheになってしまいます。
svn add ./****** したときに作成される.svnのパーミッションが
777にはならないでしょうか。 svn addしたときにumask 000 すればいいのでしょうか。
それともmkdirしたとき?
すいません。
ここの住人でリポジトリが巨大になってチェックアウトや更新が
途中で失敗する症状になった方はおられませんか?
今、リポジトリが20Gバイトくらいでチェックアウトした
ワーキングコピーは40G、ファイル数が3万程度です。
checkout中topで眺めていると、apacheがメモリとスワップ領域を食いつぶしたところで
停止しているようです。
更新を繰り返せばいいのですが、なんだかスッキリしません。
サーバーはubuntu server9.10,memory2GByte,apache2、subversion1.6です。
apacheがメモリにキャッシュ?してるかな? 64bitと32bitで試しましたが変化なし。
おっきいバイナリをsubversionで扱うのは良くないのか。
鯖側はわからないけれど、
クライアントが Windows の亀の場合、
checkout したり update したりすると、
タイムアウトで切れることはあるかな。
ワーキングコピーは 20G くらい。
失礼、お知恵をお貸しください。
webdav経由でアクセスさせる時の認証の設定をすると403が出るようになりました。
http://g-chan.dip.jp/square/archives/2008/02/subversionwebdav.html
http://ryus.co.jp/modules/wordpress/index.php?p=278
は探し出せましたが、どうもこの問題とは違うようです。
※前者はちゃんとディレクトリを指定しても403がでました
後者はブラウザでのアクセスでもダメだったので問題が違うようです。
apacheのerror_logにも「Access denied」以外のログは特に残っていないようです。
また、認証関係の設定を削るとアクセスできるので、subversionそのものは動いているようです。
以上、お心当たりがありましたらご指摘ください。
必要なら設定を晒しますので、「ここ見せろ」と言ってもらえれば幸いです。よろしくお願いします。 失礼、解決しました。
問題はAuthzSVNAccessFileの内容だったようです。
/etc/httpd/conf.d/subversion.confではSVNPathとせずSVNParentPathでリポジトリの親ディレクトリを指定していたのですが、
その場合はAuthzSVNAccessFileで指定するファイルでは、配下にあるリポジトリの名前を明示的に指定してアクセス権限を指定してやらないといけないのですね。
リポジトリ直下においたファイルをAuthzSVNAccessFileで指定した場合、特にリポジトリを指定しなくても権限が制御できていたので勘違いしていました。申し訳ありません。
以上、ご報告まで。お騒がせして申し訳ありませんでした。 巨大なリポジトリ(repo)があります。
その配下にAAA,BBB,CCC,DDD・・・などフォルダが4,000ぐらいあります。
今まではrepoを全てcheckoutして作業していたのですが、
checkoutにかなり時間を要するので、BBBとDDDセットでcheckoutなど
を考えています。
しかし、個別のフォルダをcheckoutすると、コミット時にフォルダごと
個別にしなければいけません。
かなり手間なのでいい方法はありませんでしょうか。
/repo
L AAA
L BBB
L CCC
L DDD
・
・
・ svn commit /repo/{BBB,DDD} のどこが不服なのか。 >202
そのようなやり方があったのですね。
知りませんでした。参考になります。
repoが大きくなりすぎたので、別のリポジトリを作成し分割も考えています。
その場合は>>201さんが言っている、外部参照をしたいと思うのですが、
分割した場合はパスがずれてしまいます。(webシステムと連動しているので
ややこしい)
4000フォルダをオーバーしても運用上問題なければ分割しなくてもいいのかと
なかなか判断が出来ません。
リポジトリのサーバはlinuxで、クライアントはwindowsです。
ウィンドウズはフォルダが多すぎると開くのに時間がかかってしまいます。
運用のアドバイスをいただければ幸甚です。
>>200
sparse checkout subversion とか、sparse directories subversion とかでググれば
幸せになれると思うよ。 >>202
試さずに聞くけど、Windowsのコマンドプロンプトでも使える?
cmd.exeの場合は
svn commit "C:\Documents and Settings\repos\BBB" "C:\Documents and Settings\repos\DDD"
みたいに、人間が自分で展開して並べてやる必要がある。
...けど、できる。 ubuntu サーバ(ubuと呼ぶ)上で subversion のリポジトリを作成し、Windows のファイルサーバ(winと呼ぶ)にバックアップを取ろうとしています。
バックアップの手段としては svnsync を使おうとしています(post-commitで、win 上のリポジトリと同期させたい)。
そのため、win の共有フォルダにバックアップ用のリポジトリを作成しようと、ubu から win の共有フォルダをマウントしましたが、
マウントしたディレクトリ内で svnadmin create をすると「svnadmin: database is locked」というエラーが
出てしまい、リポジトリが作成できません。
ubu 上では apache から DAV でリポジトリにアクセスさせるために、ubu 上のリポジトリには www-data:www-data に
所有権を与え、さらに、win をマウントする時にも uid,gid を www-data の id を指定しています。
windows の共有フォルダをマウントして、その上にリポジトリを作成することはできないのでしょうか?
それとも、何かしらの設定によるものなのでしょうか?
板違い、スレ違い等ありましたら誘導していただければ助かります。
よろしくお願いします。 >>209 自己解決しました
--pre-1.5-compatible オプションを付けてリポジトリを作成したら
うまくいきました。 fsfs-reshard.py
でリポジトリDBバージョンを2->3にしたらチェックアウト、更新はできるけど
コミットできなくなった。バージョンは1.6.9です。
横着しないほうがいいってことらしい。 >>209
私もsentOSからwindowsの共有フォルダをマウントして、
sentOS上のリポジトリのバックアップをwindows側に取ろうとしているんですが、
上手くいかず困っています。
【状況】
1.sentOSからwindow共有フォルダをマウント
2.SentOSから"svnadmin create hogehoge"を実行し、windows上にミラー用リポジトリ作成
3.ミラーリポジトリのhooks/pre-revprop-change の内容を以下に変更
#!/bin/sh
exit 0
4. 3のファイルに実行権限を付与
5. SentOSから "svnsync init file///ミラー先 file:///ミラー元" を実行してリポジトリの
初期化を試みるが失敗。以下のようなエラーが出た。
"svnsync: 'pre-revprop-change' フックが次のようなエラーを出力して失敗しました:"
(↑※「次のようなエラー」と出力されているにもかかわらず、エラー内容が出力されていない)
以上です。解決法をご存知の方がいらっしゃれば、アドバイスお願い致します。
http://hibari.2ch.net/test/read.cgi/tech/1283780922/から誘導されてきました。
イントラ内に建てたfreebsd8.1サーバーにsubversionインストールして
ブラウザでhttp://サーバーアドレス/davってするとdav - Revision 0: / って表示されるところまでできました。
やりたいことは、クライアントのWin7上で開発中のvisual studio 2010 proのVC#プロジェクトを管理したいのですが
サーバーに同期(アップロード?コミット?チェックアウト?)させる方法がわかりません。
つまり、コミット先?をhttp://サーバーアドレス/davにしたいのですが
設定がまずいのか現在は、ローカルの
file:///C:/Repositories/dav/trunkになってしまいます。
どうしたら変更できますか? チュートリアルやった方が良いんじゃないか?
svn importとかしらべてみな。
その段階では、サーバの問題じゃないから
http://hibari.2ch.net/test/read.cgi/tech/1286654542/
で聞いた方が良いんじゃないか? プログラム板から誘導されてきました
apacheプロジェクトやGoogle CodeのSubversionサーバみたいに
http://server/repo/trunk だとanonymous チェックアウト化、コミット不可
https://server/repo/trunk だと認証要かつコミット可
ってどうやって構成するんでしょう?
Webサーバーはapacheだと思うんですが、パスが同じなので<Location>ディレクティブ
では役に立たなさそうだし、URL rewriteのようなへんてこなことをしているようにも見えないし・・・
httpとhttpsで独立して設定できるんだからそれぞれを希望するように設定すればいいだけ >>219
VirtualHostを使うということでしょうか? <VirtualHost なんたら:80>
GET PROPFIND OPTIONSあたりのメソッドだけ許可
DAV設定
</VirtualHost>
<VirtualHost なんたら:443>
証明書の設定
DAV設定
</VirtualHost>
みたいなイメージ
初歩的な質問ですが
FSFSが何の略であるかご存知の方教えて下さい 公式のドキュメント見ても何の略か書かれてないっぽい? >>225
そうなんですよ
大した話ではないのですが気になって >> 227
情報ありがとうございます
やはりはっきりしないんですね subversionで既存のプロジェクトを管理できるように検討しているのですが以下のような場合どうすればいいのでしょうか?
・ログファイルとプログラムファイルが管理したいディレクトリ以下にある
public_html/
log/
library/
・public_html/内の画像用ディレクトリ(img/)はsubversionで管理する必要はないがaddする都度、除外するのが面倒
プロジェクトのディレクトリ構造についてご教示お願いいたいます。 >>230
無視したいディレクトリをリポジトリから削除した後に
そのディレクトリに対してsvn:ignoreプロパティを設定してコミット >>231
ありがとうございます
プロパティで設定すればいいのですね
GITをインストしようと、wiki見てたんだけど、CVSとかSubversionは酷い言われようだね。
>CVSを「悪い見本」とする。設計上のことで確信が持てない場合は、CVSと逆の決断をする。リーナスは冗談めかして以下のように語っている。
>
>“カーネルメンテナンスの最初の10年間、僕らは文字通りtarボールとパッチを使っていた。
>CVSよりもずっと優れたソース管理システムさ。僕は営利企業 ( トランスメタ[24]) でCVSを7年間使わされたことで、
>CVSを強烈に憎むようになった。
>
>CVSを強烈に憎んでいると言う時には、このことも言っておかなくちゃいけないね。
>観衆の中にSVN(Subversion)のユーザがいるなら、この場から去ったほうがいいかもしれない。
>
>僕がCVSを強烈に嫌悪しているということは、僕がSubversionが史上最大の無意味なプロジェクトであると思っていることも意味しているんだ。
>Subversionのしばらくのスローガンは‘ちゃんとCVSをやる’とかそんなものだったよね。
>そんなスローガンから始めたら、どこにも辿りつけないよ。CVSをちゃんとやるなんて不可能なのさ。 カードの認証に待たされるとかそういうごく個人的な視点で
ひとつの側面だけを見て銀行口座のシステムを憎む人もいる。
多くの人にとってそれが広く普及して使われているにも関わらず、だ。 >>233
自分を優位に見せるために競合をこき下ろす文化だからな
情報をそのまま鵜呑みにするわけにはいかんだろw そりゃ自分の用途に合わなかったってだけの理由で「史上最大の無意味なプロジェクト」とか
平気で言えるくらいだからな マージした後ヒストリーみるとMってなってるけどマージ元がどこかはわからない? いまどきsubversionを使っているおとこの人って。。。 --reintegrateが有るのと無いのとで何がどう変わるの? いまどきsubversionを使っているおとこの人って。。。 いまどきsubversionを使っているおとこの人って。。。 前に SVK を使ってたけど、
最近また必要になって使おうと思ったけどなんかダメだったので
(Subversionのバージョンに追いついてないっぽい?SVKはもう更新されないのかしらん)
代わりに git-svn を使って、gitインタフェース経由でアクセスすることにした。
それ以来、git派に転向。 gitって多言語対応?svn はその一点でつかっている。 いまどきsubversionを使っているおとこの人って。。。 >>248
Mercurial(hg)じゃあかんの? 基本的なことで申し訳ないんですが
リポジトリが破損しているかチェックするコマンド等はありませんか? >>251
svnadmin verify かな?
実際には壊れた部分を検出して取り除くことになるかもしれないが、その時は
この辺が参考になるかもしれない。
レポジトリを修復する話だが、dumpして再びloadして修復する。
http://stackoverflow.com/questions/8841796/repair-corrupted-svn-repository
ただし、いずれにしてもハードウェア的な故障が無いことは確認すべき。
その次にファイルシステムの整合性も見ておいた方がいいと思う。
これらがクリアしたらレポジトリの整合性を見るが、何をするにもバックアップは必須。
レポジトリが壊れた原因を特定することが大事。さもないと再発の恐れがある。 >>252
早い返信、ありがとうございます。
verifyした結果、破損はなくて大丈夫そうです Windows版の質問なので板違いかと思いますがお答えいただければ嬉しいです。
以前よりSubversionを用いてソース管理をしていましたが、このたびサーバを入れ替えることとなり、
Subversion自体も新しいバージョンを使用しようということになりました。
現段階でリポジトリを移行する方法は見つけれたのですが、ユーザ情報を移行する方法がわからず…
リポジトリだけではなくユーザ情報を移行する方法をご教示いただけないでしょうか? >>255
移行先のサーバはWindowsServer2012R2です。
1年以上書き込みがなかったスレで回答いただいてちょっと驚いていますw >>256
いや、svnのサーバーの話。
ま、>>257が回答してくれているけど。
ちなみに俺は>>257を読んではいないが。 >>257
>>258
回答ありがとうございます。
CollabnetSubversionEdgeを使用しているせいか、apacheかsvnserveのどちらかを動かしているという意識があまりなく…
タスクマネージャをみるとApache.exeの子タスク?としてCollabnetSubversionServerが動いているので
おそらくApacheだとは思います。
また、>>257さんに教えて頂いたサイトでアクセスするアクセス可能なユーザを制限する情報はわかったのですが、
Subversionサーバに登録されているユーザすべての情報を移行する方法はわかりませんでした。 >>259
SubversionEdgeってActiveDirectory認証使えるんじゃないの?
もしそうならユーザーの認証情報はドメインコントローラーにあるので移行の必要はない。
リポジトリへのアクセス権限はSubversionEdge側にあるはずだが、これはリポジトリを移行するときに一緒に移行されるであろう。
ユーザー認証をSubversionEdgeで行っているなら、何かエクスポートしてインポートするような機能があるんじゃないかな。 >>260
AD認証は使用していますが、それとは全く別のIDとPWを使用しているはずです。
↓のページのようにユーザを追加しているので、ここで追加しているユーザ情報を移行したいのですが、これかと思ったフォルダを入れ替えても駄目でした…
ttp://www.ipentec.com/document/document.aspx?page=subversion-edge-add-user&culture=ja-jp
ちなみにこれかと思ったフォルダはリポジトリフォルダと同じ階層にあるconfフォルダです http://help.collab.net/topic/csvn/action/configurecsvn.html
To authenticate against a local htpasswd file, keep the default setting for Authentication Methods.
認証情報はローカルなhtpasswdファイルかLDAPにあるようだから
ActiveDirectoryじゃなければhtpasswdではあるまいか。
htpasswdはユーザーidとパスワードのハッシュが書かれてるから、ユーザーidがあるかどうか探してみれば。 >>262
何度もありがとうございます。
教えていただいたhtpasswdをCドライブ内で探してみたのですが見つからず…
その後も色々とファイルを手当たり次第にファイルを開けてみたりと試してみたのですが手詰まりに。
結局グループ内でも相談した結果、ユーザを追加するとsvn_auth_fileにユーザIDと変換されたPWが
追加されていること、GUI画面から該当のユーザを削除後、再度ユーザをファイルに追加すれば
そのユーザでtoolSVNでリポジトリを取得できる、ただしGUI画面にはログインできないという状態を確認。
GUI画面を使用できないという大きな欠点はありますが、とりあえずユーザの移行はできるとことで
決着をつけました。
板違いにもかかわらず皆様ご親切に回答頂きありがとうございました。 誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。
グーグル検索⇒『宮本のゴウリエセレレ』
HI019LU7RW 僕の知り合いの知り合いができた副業情報ドットコム
関心がある人だけ見てください。
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
R473G ■ このスレッドは過去ログ倉庫に格納されています