git-svn を使用して、コミットの数が前後しているかどうかを判断する方法はありますか?
ありがとう!
直接ではありません。ただし、できることは、Subversion リポジトリのローカル コピーからどれだけ進んでいるか、または遅れているかを調べることです。
したがってgit svn fetch
、ローカルリポジトリを最新の状態にすることから始めて、そこから進んでください。
現在使用しているブランチにあるが、Subversion サーバーにコミットされていないコミットの数を調べるには、たくさんのトリックがありますが、最も明白なgit svn dcommit --dry-run
方法は、 を実行して、コミットの数を確認することです。 Subversion にプッシュされるようにリストされています。
短いバージョン: 実行しgit svn dcommit --dry-run | grep diff-tree | wc -l
ます。
作業しているブランチではなく、Subversion リポジトリにあるコミットの数を調べるには、まず、作業している Subversion ブランチの名前を調べるか、知っておく必要があります。おそらく、 の最初の行からgit svn dcommit --dry-run
、または からこれを解決できgit log -1 --grep git-svn-id
ます。
あなたのブランチがmaster
で、親の Subversion ブランチが であるとしremotes/svn/trunk
ます。git svn rev-list master..remotes/svn/trunk | wc -l
次に、ブランチではなくリモートトランクにあるすべてのコミットをカウントするために実行できます。
上記のすべての代わりに、ブランチを作成するときに、Subversion ブランチを追跡するように指定します。たとえば、リモート トランクに基づいてローカル ブランチを作成する場合、次のように作成します。
git checkout -b new-branch-name -t remotes/svn/trunk
git status
これで、またはを実行するたびにgit checkout new-branch-name
、出力には、各ブランチが他のブランチに対してどれだけ進んでいるか遅れているかを示す行が含まれます。
すでに存在するブランチの場合、次のように Subversion ブランチを追跡するように設定できます。
git branch --set-upstream existing-branch remotes/svn/trunk