8

私はすべてのブランチとタグを含む完全なSubversionリポジトリをチェックアウトしようとしています:

svn co svn+ssh://path/to/project

これはしばらくの間実行されますが、ブランチのチェックアウト中に次のエラーが発生します。

svn: Your .svn/tmp directory may be missing or corrupt; run 'svn cleanup' and try again
svn: Can't open file 'project\branches\BRANCH\source\java\com\bS\.svn\tmp\text-base\Event.java.svn-base': The system cannot find the path specified.

そこで、次のようにしてブランチを手動でチェックアウトしようとしました。

svn co svn+ssh://path/to/project/branches/BRANCH

これは問題なく実行され、ブランチを取得します。次に、ブランチをプロジェクト全体のブランチディレクトリにコピーして、チェックアウトを続行できます。しかし、他のブランチではこの問題が発生し続けます。

プロジェクト全体の一部としてブランチをチェックアウトできない理由を誰かが知っていますが、それを自分でチェックアウトすることはできますか?

4

4 に答える 4

7

svnコマンドのパラメーターで完全修飾パスを指定することにより、Windowsでこの問題を回避できます。たとえばではなく

c:\dev> svn co http://repoman.example/svn/myproj/trunk myproj

これを試して

c:\dev> svn co http://repoman.example/svn/myproj/trunk c:\dev\myproj

何らかの理由で、パスの長さの制限は相対パスにのみ適用されます

于 2011-08-05T13:57:34.297 に答える
6

さて、私は実際に自分の質問に対する答えを見つけました。少なくとも解決策です。パスの長さに関係していることがわかります。上記の質問では、会社のコードの詳細を投稿しないようにパス名を編集しましたが、実際には非常に長い名前のファイルであり、非常に深くネストされたディレクトリに存在していました。

ブランチを単独でチェックアウトしているときは、ハードドライブの上位レベルのディレクトリにチェックアウトしていて、機能していました。プロジェクト用に作成したbranchsディレクトリに直接ブランチをチェックアウトしようとしましたが、失敗したので、パスと関係があると思います。

現在、プロジェクト全体をD:\ ProjectDirにチェックアウトしていますが、すべてがよりスムーズに進んでいるようです。パスの長さにはSubversionに制限があると思います。そのため、必要なファイルの一部を取得できませんでした。

*更新:制限は255文字です。私の場合、パスは269文字であることがわかりました。したがって、問題を回避するには、ディレクトリレベルを1つ上げるだけで十分でした。

于 2011-01-17T14:30:39.637 に答える
2

これをチェックして: find . -iname '.svn' -exec mkdir {}/tmp \;

于 2013-10-23T14:10:16.387 に答える
0

また、CONやPRN(CON.javaなど)などの特別なWindowsデバイス名がプレフィックスとして付けられているファイル名をチェックアウトするときにもこのエラーが発生します。

http://mail-archives.apache.org/mod_mbox/subversion-users/201209.mbox/%3C4C6D8718-51F0-4DC7-9E74-E8161EC686AC@ryandesign.com%3E

于 2013-04-12T09:12:44.180 に答える