web-dev-qa-db-ja.com

TortoiseSVNの更新ファイルがありません

TortoiseSVN(SVNリポジトリではなくTortoiseだと思います)で時々問題が発生しました。この場合、ファイルがリポジトリにチェックインされ(リポジトリブラウザでファイルを確認できます)、その人のために存在します。誰がそれらをコミットしたが、他の人が更新を行っても、それらのファイルは作業コピーに追加されません。次に、リポジトリブラウザーから[作業コピーにコピー...]を選択してコミットしようとすると、ファイルが新規として扱われ、クライアントがそれらを追加しようとするとエラーが発生します。また、更新するとエラーが発生します(これを再現する方法がわからないので、具体的に何が原因かわからず、正確なエラーを覚えていません)。次に、リポジトリからファイルを削除し、ファイルを新規としてコミットする必要があります。この後、すべてが正常に機能し、元の人はファイルに問題がありません。

リポジトリは、svn://プロトコルを介して、バージョン1.4.6を実行しているサーバーにアクセスします。これは、Windowsサービスとして実行されているWindows Server 2003マシンでホストされます。

リポジトリは次のようにレイアウトされます。

[リポジトリ]/Code/[プロジェクト] 
 [リポジトリ]/Code/[ウェブサイト]/*ここのいくつかのページ* 
 [リポジトリ]/Data/[その他のデータファイル] 
 [リポジトリ] /参照/ [dll /参照]

これは.aspx/.aspx.cs/.aspx.designer.csでほぼ例外なく発生し、通常は一度に3つすべてが発生します。 「ページ」全体がフォルダに追加されないかのように。これは、Visual Studioを開いてソリューションを実行している場合、およびVisual Studioを開いていない場合にも発生しました。

誰かこれを以前に見たことがありますか?原因/解決策を知っていますか?

12
goldenratio

私は時々説明された問題を抱えていました。ちょうど今、それは再び起こりました。同じ状況:SVNサーバーでSVNクライアントAから変更/追加/削除/移動された複数のファイルがあり、SVNクライアントBが(Tortoise SVNを使用して)作業コピーを更新しました。更新後、Aから追加されたファイルの一部はBの作業コピーに存在しませんが、リポジトリブラウザーはSVNサーバーの正しい場所にそれらを表示します。 Tortoiseで再度更新すると、常にすべてが現在のリビジョンにあると主張されます。また、ファイルが見つからないフォルダーの「svn up」は、すべてが現在のリビジョンにあることを示しています。

私は使っています

Tortoise SVN 1.6.6、ビルド17493-64ビット

Visual SVN 1.7(Visual Studio 2008へのSVN統合)

編集:これは既知の問題のようです、解決策は次のとおりです: http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2379518

10
user26083

SVN 1.6.2と1.6.3(コマンドライン、Tortoise、Subclipse)で同じ問題が発生しました。したがって、問題はSVN自体に関連しているようです。次の回避策があります-同じディレクトリにチェックアウトしてみてください-不足しているファイルを追加するだけです。

3
al0

コマンドラインツールを使用して、亀かsvnかをテストできます。 WCルートディレクトリに「svn up」と入力します。

あなたが1.4.6を使用していると言うと、疎ディレクトリに問題はありません。クライアント設定でファイルを無視しましたか? WCがリポジトリ内の正しいURLをポイントしていて、別のブランチに切り替えられていませんか? (これはフォルダのプロパティで確認できます-Subversionタブがあります)

WCで「svn status」を実行すると、サーバーのディレクトリにある変更されたファイルのリストが表示されます。

3
gbjbaanb

ダニエルのリンクの説明を使用してこの問題を解決することはできませんでしたが、少なくともWindowsのほとんどのSVN実装ではコアの問題であるように思われます。

フォルダーが見つからない問題を修正するための手順は次のとおりです。

  1. 「リビジョンに更新」、フォルダー内のファイルが変更、追加、または削除される前にコミット番号を選択し、「完全に再帰的」を選択していることを確認します。 (これはTortoiseで奇妙なエラーを引き起こします。それは予想されます!)
  2. クリーンアップを実行します。
  3. フォルダーをもう一度更新すると、フォルダー全体を取得できます!

これが他の誰かを助けることを願っています。

1
Matt DeKrey

残念ながら、上記の以前の答えは私にはうまくいきませんでした。同じ問題がありました:作業中のフォルダーには、コミットされていないオブジェクトがいくつか含まれていました。そのフォルダーは、別のユーザーによって多くのオブジェクトで更新されました。リポジトリでそのユーザーのオブジェクトを確認できましたが、更新を行うたびに、そのユーザーのオブジェクトを取得することはできませんでした。

機能した修正は、フォルダーでTortoiseSVN Revert を使用することです。

0
Allen