複数の SVN ワーキングコピーの内容を最新に保つ

SVNGUI クライアント(たとえば TortoiseSVN)を使うと、簡単に SVN 操作をできる。
しかし、複数の SVN ワーキングコピーに対して一括で操作したい場合、ひとつひとつ手作業をすると手間になる。


具体的には複数の SVN ワーキングコピーに対して、以下を実行したい

  • ワーキングコピーがある場合は svn update でワーキングコピーを更新する
  • まだワーキングコピーがない場合は svn checkoutSVN リポジトリをチェックアウトする
  • 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/

subversionhttpd などがメンテナンスされていることが確認できる。


Apache 以外だと大きいところでは gccSVN 管理されている。(GitHub にある gcc リポジトリは mirror である)

https://gcc.gnu.org/viewcvs/gcc/