3

次のレイアウトとして実行されているプロジェクトがあります。

/my_proj/trunk/
/my_proj/tags/1.0.0/
/my_proj/tags/1.0.1/
/my_proj/tags/1.0.2/
/my_proj/tags/1.0.3/

そのため、tagsディレクトリには、リリースの準備ができている凍結されたブランチがあります。

の多数のディレクトリとは異なり、単一のディレクトリのみをスキャンできる CI サーバーを導入しましたtags

tagsしたがって、次のような一連のコミットにフラット化を解除することは可能ですか?

/my_proj/branch/release
  commit 1: "ver 1.0.0"
  commit 2: "ver 1.0.1"
  commit 3: "ver 1.0.2"
  commit 4: "ver 1.0.3"
4

1 に答える 1

0

これはどうですか(完全にはテストされていません):

ワークディレクトリのどこかから、bash で

svn copy ^/trunk@1 ^/branches/rolling -m "Creating a rolling release branch"
svn co ^/branches/rolling
cd rolling
svn list ^/tags | xargs -I {} sh -c \
 "svn merge --accept theirs-full --ignore-ancestry ^/tags/{}; \
  svn ci -m \"ver {}\" \
  svn update \
 "

これは疑似自動スクリプトです。タグのバージョンが少ない場合は、コマンドを 1 つずつ実行することをお勧めします (つまり、xargs を経由せずに)。

于 2013-12-19T22:35:29.773 に答える