#author("2022-04-23T01:42:41+00:00","default:hotate","hotate") #author("2022-04-24T22:24:56+00:00","default:hotate","hotate") #contents &tag(Subversion); * コマンド [#v0c86db7] - ディレクトリとそのディレクトリ以下を全て登録する。 % svn add Foo.xcodeproj/xcuserdata/ - 上記の登録取り消し。 % svn revert --depth infinity Foo.xcodeproj/xcuserdata/ - ディレクトリのみを登録する。(ディレクトリ以下のファイルは登録しない) % svn add --depth=empty Foo.xcodeproj/xcuserdata/ - ディレクトリ以下に含まれるファイルを全て無視属性に指定する。 % svn propset svn:ignore "*" Foo.xcodeproj/xcuserdata/ - 特定の日付以降のログを取得する。(実際のデータは、指定日を含むやや広い範囲) % svn log -r {2011-12-01}:HEAD http://foo.server/svn/ - リポジトリをバックアップする。 % svnadmin dump $svnrep > $svnrep_`date "+%Y%m%d_%H%M%S"`.dump - コミットの取り消し(一つ前のrev.999に戻す) % svn merge -r HEAD:999 . # Latest -> r999 % svn commit -m "Reverted to .r999" - ignore属性の編集 % svn propedit svn:ignore . --editor-cmd vi - ignore属性の表示 % svn propget svn:ignore - ignore属性を含むファイルの状況を表示 % svn status --no-ignore - 「特定のリビジョン間で追加・削除・変更を行ったファイルのパスのリストだけを出力」 -- [[OZACC.blog: Subversion 変更ファイルリストの出力>http://blog.ozacc.com/archives/001799.html]] % svn diff --summarize -r 236:297 > filelist.txt ** diff [#w0612137] - [[まさおのブログ (表): svn diff でバイナリファイルを含めてパッチを作る>http://masaoo.blogspot.jp/2012/03/svn-diff.html]] -- 覚え書:"--force"を付けるとバイナリファイルもdiffを取れるようになる。(2014/09/04) - [[Subversionで差分ファイルの一覧をxmlファイル形式で出力する - 大人になったら肺呼吸>http://d.hatena.ne.jp/replication/20111201/1322666374]] 差分ファイルの一覧をxmlで出力するには--xmlオプションを指定 * [[Xcode]] [#rbb39be6] - [[Xcode]]プロジェクトパッケージ内のignore属性 -- [[Xcode 4 と Subversion の連携 | アカベコマイリ>http://akabeko.sakura.ne.jp/blog/2011/09/xcode-4-svn/]] /XXXX.xcodeproj/xcuserdata /XXXX.xcodeproj/project.xcworkspace/xcuserdata * [[macOS]] [#te475e97] ** クライアント [#nb833b58] *** Cornerstone (MacOSX) [#a7cc5ed4] - http://www.zennaware.com/cornerstone/index.php -- $39(3450円)(2011/8/10) *** Xversion [#nd76095b] - https://itunes.apple.com/us/app/xversion/id1105845111?mt=12 -- $19.99 (2019/04/14) - [[トラブル]]:[[Catalina]]ではパスワードがKeychainに保存されず、毎回入力が必要だった。(2020/08/11) *** Versions [#i4833aef] - https://versionsapp.com/ - $119、Versions2として公開されていた。(2022/03/03) - %%$59、最近2年は更新されていない。(2020/08/11)%% *** VisualStudioCode [#n0ba4f6d] - [[Subversion]]機能拡張を追加すれば良い。 ** [[Homebrew]] [#j4e9a9b7] - [[Subversion 1.8 macOSにおける日本語ファイル名対応版のインストール方法|hrkokd|note>https://note.com/hrkokd/n/n34bf6704e280]] 問題の原因は、2019年1月にHomebrewからsconsが外されたためのようです。 -- コメント:現時点では既に反映されている。(2020/01/06) --- https://github.com/tholu/homebrew-tap/commit/bbc3cdbc3a1fe5670a74d3544229cb69a564ea82 Remove deprecated scons call *** [[トラブル]] [#q14dcf97] + 問題:下記のエラーが発生する。(2022/04/23 [[Monterey]]) + 問題:下記のエラーが発生する。([[2022]]/04/23 [[Monterey]]) $ /usr/local/Cellar/subversion/1.14.2.reinstall/bin/svn dyld[73198]: Symbol not found: _apr_crypto_block_cleanup Referenced from: /usr/local/Cellar/subversion/1.14.2/lib/libsvn_subr-1.0.dylib Expected in: /usr/lib/libaprutil-1.0.dylib -- 対処:必須ライブラリの再インストールで解消した。 $ brew reinstall apr-util * [[Apache]]設定 [#v534f3b3] - [[Lion]] (10.7.1) <Location /svn> DAV svn SVNListParentPath on SVNParentPath "/Users/foo/data/svn" SVNIndexXSLT /svnindex.xsl Order deny,allow Deny from all allow from 127.0.0.1 AuthType Basic AuthName "Subversion repository" AuthUserFile /Users/foo/data/users Require valid-user </Location> * コミットログ [#h3fdf7d1] - コミットログを[[Ruby]]で取得する。 lines = `svn log --limit 10 --verbose http://server/svn/` mail_body = "" lines.each{|line| if /^-+$/ =~ line mail_body << line puts mail_body mail_body = "" end if /^r(\d+).*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}).*line.?$/ =~ line mail_header = "Commit revision:" + $1 + " (" +$2 + ")" puts mail_header end mail_body << line } -- ヘッダの出力例: Commit revision:307 (2011-08-20 16:06:15) - コミットログを編集する -- [[Subversionのコミットログを修正 - てんぷらメモ>http://terai.xrea.jp/Subversion/SetLog.html]] ++ 既存のsvnログを取り出す。 $ svn log http://localhost/svn/firstdb/ -r 392 > log.txt ++ ログを編集する。(リビジョン番号などを取り除くこと) ++ ログを再設定する。(http経由では出来ないらしい) $ svnadmin setlog --bypass-hooks /Users/foo/data/svn/firstdb/ -r 392 log.txt ++ [[Trac]]と同期する。 $ /opt/local/bin/trac-admin traconmac repository resync '*' - [[SVNでコミット時にコメントのチェックをする - Webサービスで起業を目指すプログラマーblog>http://shinsuke789.hatenablog.jp/entry/20120830/1346296855]] このシェルスクリプトはコミット時にコメントが5文字未満ならエラーを返します。 - [[SVNで,コミット時にログの入力を強制する (Windows版subversionのサーバ側フックスクリプトの作成方法) - 主に言語とシステム開発に関して>http://language-and-engineering.hatenablog.jp/entry/20100819/p1]] SVNで,コミット時にコメントの入力を強制する方法。 - [[Subversion/コミットログをメール送信 - ピノキヲ IT Wiki>http://pinoki.la.coocan.jp/wiki/?Subversion%2F%A5%B3%A5%DF%A5%C3%A5%C8%A5%ED%A5%B0%A4%F2%A5%E1%A1%BC%A5%EB%C1%F7%BF%AE]] ただし、このスクリプトは日本語未対応のため、メールの文面が文字化けします。 そこで、下記サイトからcommit-email-jp.plをダウンロードして、CentOS5用にカスタマイズします。 ** [[文字コード]] [#f6e41323] - [[Subversion のコンパイル (for Windows) 国際化対応 (VC6)>http://www.asahi-net.or.jp/~iu9m-tcym/svndoc/svn_i18n_vc6.html]] 環境変数 APR_ICONV_PATH の設定が正しいディレクトリを指しているか確認してください。 - [[Subversion - YImai's memo>http://www.clip.gr.jp/~imai/PukiImaiWiki/index.php?Subversion]] svn.exeとTortoiseSVNでは、文字コード変換に利用するiconvライブラリが別にインストールされるため、svn.exeで日本語が扱えなくなることがあります。 対策 コマンドプロンプト実行時は、iconvライブラリのパスを強制的にsvn.exe用にする。 - [[Subversion メモ - MLEXP Wiki>http://www.mlexp.com/wiki/?Subversion%20%A5%E1%A5%E2]] SVNサーバのLANG設定は正しい、かつ、今までは普通にコミットできていたのに、 急にコミットできなくなった、という場合は、次のチェックをしてみる。 - SubeclipseやTortoiseSVNなどクライアントの文字コードが変わっていないか。 - エディタの文字コード設定が変わっていないか。 - Eclipseの場合は、プロジェクトをクリーンアップ(リビルド)してみる。 - 環境変数 APR_ICONV_PATH が設定されてなければ追加。 * 関連 [#q43f01b8] #taglist(tag=Subversion)