現在、LinuxからWindowsにレポを移行しています。私が抱えている問題は、新しいリポジトリをロードするときに階層が[reponame]\[reponame]
であるということです。すべてのフォルダを1つ上に移動する方法はありますか?SVN新しいリポジトリをロード
UPDATEは
は> [repofile] Unixでリポジトリの階層何
現在、LinuxからWindowsにレポを移行しています。私が抱えている問題は、新しいリポジトリをロードするときに階層が[reponame]\[reponame]
であるということです。すべてのフォルダを1つ上に移動する方法はありますか?SVN新しいリポジトリをロード
UPDATEは
は> [repofile] Unixでリポジトリの階層何
たの.dumpレポ負荷 svnadminは負荷[レポ]を取得するには、次のコマンドを使用しましたか?そこにhttpを使っていましたか?
あなたが何を意味するかわからない。あなたはリポジトリにリポジトリの名前を含むディレクトリが含まれていると言っていますか?または、あなたがチェックアウトを行うとき、今のようなことを言っているのですか?
C> svn co http://server/foo/foo/trunk
checkoutコマンドはどのようになりますか?
あなたはリポジトリはあなたがsvnadmin create
コマンドで作成された単一のリポジトリのディレクトリについて話している、またはあなたが単一のリポジトリに複数のプロジェクトについて話していると言いますか?
私のリポジトリにサービスするのにsvnserve
を使用しています。私たちのリポジトリmyproj
と呼んで、自分のマシンに自分のリポジトリを提供したいと思っていますsoftserve
。チェックアウトをしたいときは、次のようにします:
$ svn co svn://softserve/trunk myproj-trunk
通知私は自分のサーバーの名前しか持っていません。 URLには自分のリポジトリの名前は含まれません。これは、svnserve
が1つのリポジトリにしか対応できないためです。複数のリポジトリがある場合は、別々のマシンを用意するか、すべてのリポジトリを単一のリポジトリにマージするか、別のポートを使用する必要があります。
Apacheは複数のリポジトリにサービスすることができますが、各リポジトリにはアクセス用の仮想Webディレクトリが必要です。ApacheはURLを見るとSubversionリポジトリであり、httpdocsディレクトリからはディレクトリではありません。したがって、Apache URLには少なくとも1つのディレクトリがあります。
Apache Subversionリポジトリを指定するには、2つの方法があります。各Apacheの仮想ディレクトリは、単一のリポジトリを持って、この場合
<Location /myproj>
DAV svn
SVNPath C:/path/to/repository/myproj
</Location>
<Location /project_two>
DAV svn
SVNPath C:/path/to/repository/project_two
</Location>
:あなたは、このような単一のリポジトリを指定することができます。私はチェックアウトを行うときにこのように、私のコマンドは次のようになりますSVNのURLに対するこのURLに余分なディレクトリがあります
$ svn co http://softserve/myproj/trunk myproj-trunk
ていることに注意してください。これは、サーバーを指定するだけでなく、Apacheの仮想ディレクトリも指定する必要があるためです。この場合、仮想ディレクトリ名をリポジトリ名と一致させました。私はそれをする必要はありませんが、そうでなければばかげているでしょう。
ユーザーは、URLにリポジトリ名を追加するだけです。それはまだ理にかなっています。 myproj
からチェックアウトしたい場合はhttp://softserve/myproj
を使用し、project_two
からチェックアウトしたい場合はhttp://softserve/project_two
を使用します。
しかし、ある企業では、Subversionサーバーから数百のSubversionリポジトリを提供していることがあります。 Apacheの設定で各リポジトリを指定するのは難しく、特に新しいプロジェクトを追加して古いプロジェクトを削除してしまうと難しくなります。
この問題を回避するには、SVNPath
の代わりにSVNParentPath
の指定を使用できます。これは、あなたがSubversionリポジトリのディレクトリではなく指定することができますが、それが存在する必要があり、親ディレクトリ:
<Location /source>
DAV svn
SVNParentPath C:/path/to/repository
</Location>
、私は自分のサーバー上の単一のディレクトリの下に私のリポジトリのすべてを置くことができ、およびApacheは自動的にそれらを提供しますすべて。新しいリポジトリが作成されると、私はSVNParentPath
の下に置くだけです。 Apacheの設定を変更する必要はありません。
問題は、Apacheの仮想ディレクトリだけでなく、リポジトリ名も指定する必要があります。したがって、私のURLはディレクトリにあります。 (この場合、私はApache Parent仮想ディレクトリsource
と呼んでいます)。
$ svn co http://softserve/source/myproj/trunk myproj-trunk
私はちょうどVisualSVNサーバーをダウンロードし、それを見ました。 VisualSVN ServerはバックエンドでApacheを実行します。それは自動的にあなたのためにそれを設定し、素晴らしい単純なフロントエンドを作成します。作成されたApacheの設定をC:\Program Files\VisualSVN Source\conf\httpd.conf
で見ると、私は次のようになります。
VisualSVNをセットアップすると、自動的に後者が実行されます。結局のところ、人々はVisualSVNを支払うことになります - それはあなたのためにすべてのApacheリポジトリ処理を担当します。そして、あなたのケースでは、あなたはこのような何かが生じた何かやった:
<Location /foo>
DAV svn
SVNPath C:/path/to/repository
</Location>
をと、C:/path/to/repository
でのみリポジトリは、あなたのfoo
リポジトリです。このように、あなたのURLは次のようになります。
<Location /svn/>
[...]
SVNParentPath C:/Repositories/
[...]
</Location>
をので、あなたがC:\Repositories
の下であなたのfoo
リポジトリを置く場合は、チェックアウトは、次のようになります。
svn co http://softserve/svn/foo/trunk foo-trunk
私が見にVisualSVNサーバーで遊んでいませんでしたsvn
Apache仮想ディレクトリ名をフロントエンドから変更することができますが、より多くの構成が可能なフルバージョンを購入したことを想像して、ディレクトリにリポジトリ名と同じ名前を付けたとします。あなたが言及した
svn co http://softserve/foo/foo/trunk foo-trunk
ダブルリポジトリ名:したがって、あなたはfoo
からチェックアウトするとき、あなたはこれを取得、
<Location /foo/>
[...]
SVNParentPath C:/Repositories/
[...]
</Location>
を持っています。
私はあなたがSVNParentPath
の代わりにSVNPath
を使用するために、生http.conf
ファイルをハックすることができます想像することができますので、あなたのURLは、このようなものになるだろう:
svn co http://softserve/foo/trunk foo-trunk
しかし、私はSVNが処理する方法をビジュアル分かりませんそれ。あなたのベスト・ベットは、Apacheの仮想ディレクトリ名をデフォルトのsvn
に変更するか、source
またはsrc
に変更することだと思われます。
移行の手順は何ですか。あなたが何をしているかを知ることは、あなたが何をしているのかを達成するために、あなたが何をする必要があるかをもっと簡単に知ることができます。 – cdeszaq