6

いいえ、これはこれの複製ではありませ

私は通常、SVNでビジュアルツールを使用することに慣れていますが、今ではに移動したいと思ってRepo/Parent/ChildX/ChildYRepo/ChildYます。次のエラーが表示され、ここで欠落しているものを探しています。(ダンプから)インストールされたばかりのサーバーを考えてみましょう。svn以外に利用できるものはありません。

> svn checkout https:// localhost / Repo
svn:「https:// localhost / Repo」のオプション:200 OK(https:// localhost)

> svn move Repo / Parent / ChildX / ChildY Repo / ChildY
svn:「リポジトリ」は作業コピーではありません
svn:'リポジトリ'は存在しません

> svn move Parent NewParent
svn:'。' 作業ディレクトリではありません

> svn move https:// localhost / Repo / Parent NewParent
svn:作業コピーとリポジトリ間の移動はサポートされていません

> svn move https:// localhost / Repo / Parent https:// localhost / Repo / NewParent
svn:「https:// localhost / Repo」のオプション:200 OK(https:// localhost)

> svn commit--message"moveコマンドを機能させようとしています"
svn:'C:\SVNTest'は作業コピーではありません

最初のコマンド(checkout)が、「Repo」の後ろに置いたものに対して同じ応答を返すのは少し奇妙だと思いhttps://localhost/Repo/SomeNonExistingNameます。私は何かが欠けていると確信しています。引っ越しに作業用のコピーは必要ないという参考文献を見つけましたが、どうすれば引っ越しを行うことができますか?

上記のコマンドはいずれも、エラーが発生したかOKかを問わず、実際の移動を行いませんでした。VisualSVNサーバーを使用しており、オンラインでリポジトリを参照できます。


解決

以下の受け入れられた解決策と他の答えは、この問題を解決するのに役立ちました。上記の最初のコマンドに対する応答は、Apacheサーバーからの通常の応答と同じです。200OKはHTTP応答です。

VisualSVNサーバーを使用する場合、デフォルトのインストールはの下 https://hostname/svnにあります。チェックアウトするには、リポジトリ名の前にそのパスを付ける必要があります。上記の最初のコマンドは次のようになっているはずです。

> svn checkout https:// localhost / svn / Repo
file1
file2
等...
リビジョンXXX

残念ながら、この小さな落とし穴は、些細なことですが、どこにも言及されていません。チェックアウト後、同じディレクトリからの移動は簡単になります。

> svn move Folder / SubFolder NewFolder
4

3 に答える 3

3

有効なチェックアウトがあると仮定すると、最も簡単な方法は次のようになります(REPO_URLを正しいURLに置き換える):

svn co REPO_URL
cd Repo
svn mv Parent/ChildX/ChildY .
svn commit -m "moved directory"

もちろん、これは、標準のトランク/タグ/ブランチディレクトリがないことを前提としています。

これはあなたが答えなければならない質問に私をもたらします:チェックアウトされた作業ディレクトリはどのように見えますか?それはあなたが期待する構造を持っていますか、それともあなたが知らないいくつかのディレクトリを持っているのでしょうか?.svnRepoの下にディレクトリが表示されますか?


編集:私はVisual SVNサーバーを使用したことがありませんが、アクセス可能なファイルシステムにリポジトリがある場合は、いつでも「ファイル」URLを使用できます。

svn co 'file:///localhost/Repo'

または、(VisualSVNが「ドキュメント」と呼ぶものを確認した後)、Visual SVNを介して作業ディレクトリをチェックアウトし、上記のコマンドを実行することをお勧めします。

さらに、Visual SVNはトランク/タグ/ブランチディレクトリを作成するように見えるので、ディレクトリ構造を確認したら、作業ディレクトリにcdして、そこでコマンドを実行する必要があります。

于 2010-01-21T12:28:28.450 に答える
1

あなたのコメントに応えて、チェックアウトはどのように見えるべきですか、これは私自身のプロジェクトの1つのチェックアウトの最後です:

dblite \ tags \ pre-codeblocks \ src \ sqlite3.h
dblite \ tags \ pre-codeblocks \ inc
dblite \ tags \ pre-codeblocks \ inc \ dblite.h
リビジョン31をチェックアウトしました。

そしてもちろん、tはディレクトリ構造を作成する必要がありますが、これはあなたが行っていないようです。

于 2010-01-21T12:29:15.370 に答える
1

チェックアウトが失敗しているように見えます。

成功すると、通常、チェックアウトされたファイルのリストに続いて「チェックアウトされたリビジョンXXXXX」という行が表示されます。

このスレッドからの提案のいくつかは役立つかもしれません。特に、httpsアクセス用にsvnサーバーが適切に設定されていない可能性があります。修正したら、リンクしたスレッドの指示に従うことができるはずです。

'svn checkout'行をいじっても問題が解決しない場合は、更新/コメント/返信してください。

于 2010-01-21T12:30:37.400 に答える