複数の SVN ワーキングコピーの内容を最新に保つ
SVN の GUI クライアント(たとえば TortoiseSVN)を使うと、簡単に SVN 操作をできる。
しかし、複数の SVN ワーキングコピーに対して一括で操作したい場合、ひとつひとつ手作業をすると手間になる。
具体的には複数の SVN ワーキングコピーに対して、以下を実行したい
- ワーキングコピーがある場合は
svn update
でワーキングコピーを更新する - まだワーキングコピーがない場合は
svn checkout
で SVN リポジトリをチェックアウトする - update/checkout 時にエラーが発生したら
svn cleanup
をする
この問題に対応するために Python スクリプトを作成した。
https://github.com/daisuke-t-jp/svn-working-copy-updater
詳しい使い方は上記 GitHub の README.md を参照すること。
ところで
このスクリプトをテストするにあたり、現在まだ commit が継続されている現役の複数の SVN リポジトリを探すことに難儀した。
2019年現在、 やはり Git が主流(というかほぼ全て)になり、SVN でメンテナンスしているプロジェクトは少なくなった。
探した結果、Apache はまだ現役で SVN を使って複数のプロジェクトのバージョン管理をしているので、今回はそれをテストに使用した。
https://svn.apache.org/repos/asf/
subversion や httpd などがメンテナンスされていることが確認できる。
Apache 以外だと大きいところでは gcc も SVN 管理されている。(GitHub にある gcc リポジトリは mirror である)