これがどのように実現したのか正確にはわかりませんが、私の git-svn は現在 fubar です。
ERROR from SVN:
Transaction is out of date: File '/proj/some/file.java' is out of date
No changes between 61f2c8cfa5881aab335edc2c0807f288c420f624 and refs/remotes/svn/git-svn
Resetting to the latest refs/remotes/svn/git-svn
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.
以前に SO で同様の質問がありましたが、どちらの解決策もうまくいきませんでした.マージの競合はなく、.git/svn を脇に置いて実行git svn fetch
してもエラーはgit svn dcommit
. fetch の実行には、興味深いステートメントが 1 つあります。
M proj/some/file.java
... [merge list] ...
Last fetched revision of refs/remotes/svn/git-svn was r8104, but we are about to fetch: r8102!
それが何を意味するのかわかりません。
編集: SourceTree のツリーを見ると、SVN がマスター ブランチの「先」にあり、r8102 以降のコミットが両方のツリーで「複製」されていることがわかりました。マスターを r8102 より前に戻して、再度進めようとしても、問題は解決しませんでした。
編集 2: ツリーは次のようになります。
+-------D---E---F---G remote/svn/git-svn
/
A---B---C---D---E master
@Benの提案を試す前に、git rebase remotes/svn/git-svn master
何を期待すればよいですか? リモートには表示されないが、マスターには表示される多くのコミット (ここでは B & C) があります。重複は、異なるトンネリング方法間の切り替えに何らかの形で関連しているように見えます。ここで svn を保護する必要があります。これは私の個人的な関心 (および将来の問題の回避) のためです。
私の .subversion/config から:
[tunnels]
wlan = /usr/bin/ssh -F /dev/null -l petri -t -A wifi-gateway /usr/bin/ssh -F /dev/null -l svnremote -A
wan = /usr/bin/ssh -F /dev/null -l petri -t -A extern-gateway /usr/bin/ssh -F /dev/null -l svnremote -A
これにより、次のような異なる svn commit コメントが生成されます
git-svn-id: svn+wan://dev/svn/v9/trunk@8102 b9636cbc-3124-4d49-8704-a9669b6dc9bf
ここにいくつかの悪い参照IDの問題がないかどうか疑問に思っています...