#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)

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS