4

この回答に従って、既存の git リポジトリを SVN にインポートしようとしています。いくつかのコミットはスムーズに進みましたが、失敗した precommit フックにヒットしました。

r180827 = 444fa1c75e5a31fe8d887637a7fbd3fc62b34354 (refs/remotes/trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
Unstaged changes after reset:
M       [some file]
M       [another file]
M       [...etc...]
        A       [problem file]
A repository hook failed: 'pre-commit' hook failed with error output:
[error description]
  at /usr/libexec/git-core/git-svn line 922

私はそれを通り抜けることができるようにフックを修正しました。しかし、git svn dcommitもう一度試してみると(明らかに間違っていました)、

[some file]: needs update
[another file]: needs update
[...etc...]

「git status」を実行すると、次のようになります。

#       modified: [some file]
#       modified: [another file]
#       modified: [...etc...]
#
# Untracked files:
#   (use "git add<file>..." to include in what will be committed
#       
#       [problem file]
#       [other file modified in the commit that created the problem file]
#       [yet other files modified in that commit]
#       [...etc...]

SVN ツリー全体を吹き飛ばして最初からやり直すこともできると思いますが、実際にはやりたくありません。これから回復して dcommit を続行するにはどうすればよいですか?

4

1 に答える 1

1

dcommit 時に次のエラーが発生したため、まったく同じ問題が発生しました。

   0 [main] perl.exe" 5992 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION
6635 [main] perl.exe" 5992 open_stackdumpfile: Dumping stack trace to perl.exe.stackdump

他の解決策が見つからなかったので、現在「コミットされていない」変更に対してローカルコミットを実行しただけで(質問の最後の例のように)、その後dcommitを再度実行できました。これにより、残りのローカル コミットが 1 つにまとめられましたが、少なくとも機能しました。

誰かがより良い解決策を知っていれば、それは高く評価されます。

于 2012-08-01T11:09:43.977 に答える