2

いくつかの単純なWindowsバッチスクリプトの場合、特定のリビジョンのsvnリポジトリのローカル作業コピーに特定のフォルダーのコピーを一時的に作成したいと思います。svnサーバーから直接チェックアウトしたくない(スクリプトはサーバーアドレスが何であるかを知る必要があり、場合によっては認証などが必要になるため)。また、非表示の.svnフォルダーとしてサブフォルダーをコピーすることはできません。高いです。

私は(隠しフォルダrepoを含むフォルダで)いくつかのバリエーションを試してきました:.svn

svn co file:///E:/repo/paper@48 E:/temprepo

しかし、それはうまくいきません。私のWindows7コマンドプロンプトは次のように答えます

svn: E180001: Unable to connect to a repository at URL 'file:///E:/repo/paper'
svn: E180001: Unable to open an ra_local session to URL
svn: E180001: Unable to open repository 'file:///E:/repo/paper'

私は何か間違ったことをしていますか、それとも私が試みていることは不可能ですか?

4

2 に答える 2

2

あなたの質問は少しあいまいです。これについては、2 つの見方が考えられます。

  1. .svn フォルダーなしで、svn 作業コピー内のサブフォルダーのコピーが必要であると仮定します。svn exportこのように、作業コピーの特定のサブフォルダーをコピーするために使用できます- svn export E:\repo\paper E:\temprepo.

  2. 見積もり:

    非表示の .svn フォルダーが上位にあるため、サブフォルダーをコピーすることはできません。

    編集:このファイル構造は、Subversion v 1.7 でのみ使用できます。バージョン 1.6.x の Subversion クライアントでは、作業コピー内のサブフォルダーは自己完結型である必要があります。つまり、別の場所に複製して、その中で転覆操作svn updateなどを行うことができます。

于 2012-06-27T14:45:36.583 に答える
1

質問で正しく述べたように、リポジトリ自体ではなく、Subversion リポジトリの作業コピーがあります。

Subversion サーバーであるリポジトリのみをチェックアウトできます。

リポジトリをチェックアウトすると、リポジトリ コンテンツの元のバージョンが ".svn" フォルダー内に配置されます。

これは、作業コピーがサーバーにリクエストをルーティングせずに元のコンテンツと異なる場合に、svn が差分を表示する方法です。

また、サーバーアドレスのメタデータや、実行時に表示できるその他の情報も保持しますsvn info。これには、svn url としてサーバー アドレスも含まれます。

作業コピーと「.svn」フォルダは、チェックアウト元のリポジトリを完全に認識します。

自分の作業コピーからチェックアウトできない理由が理解できたと思います。

于 2012-06-27T16:24:32.183 に答える