0

次のコマンドを使用して、リポジトリをローカル パスにエクスポートしています。

svn export --force svn://localhost/repo_name /share/Web/projects/project_name

リポジトリをリモートサーバーにエクスポートするために、FTPプロトコルを介して同じことを行う非常に簡単な(ここではLinuxの初心者)方法はありますか?

AFAIKの最後のパラメーターはsvn exportローカル パスである必要があり、AFAIK では、このコマンドは次のように URL の形式でパスを指定することをサポートしていません。

ftp://user:pass@server:path/

だから、仕事をするためにここで雇われたスクリプトがあるべきだと思います。

そのことについて何人かに尋ねたところ、リポジトリをローカル パスにエクスポートし、それを FTP サーバーに転送してからローカル パスを削除するのが最も簡単な方法であるとアドバイスされました。残念ながら、最初のステップの後で失敗しました (ローカル パスに抽出します! :) それで、サポートの質問は、オンザフライで実行できるのか、それとも本当に 2 つのステップに分割する必要があるのか​​ということです: エクスポート + ftp 転送?

また、リモートサーバーにローカルSVNクライアントをセットアップし、リポジトリから簡単なチェックアウト/更新を行うように勧められました。ただし、これは、他のすべてが失敗した場合にのみ可能な解決策です。SVNファイルなしで純粋なリポジトリ構造を抽出したいので、この方法で取得します。

ところで: 私はシンプルな NAS デバイスである QNAP TS-210 を使用しており、搭載されている Linux は非常に限られています。そのため、GUI と同じくらい優れたコマンドライン コマンドの多くは利用できません。

編集:これは私の「チェーン」の2番目の質問です。ここで成功するのを手伝ってくれたとしても、問題の「 SVN: Force svn daemon to run under different user 」の助けがなければ、この仕事を自動化することはできません (私が望んでいるように) 。誰かそこも見てもらえませんか?ありがとうございました!

4

3 に答える 3

3

Linux を使用している場合は、 ftpfsをマウントできるはずです。このためのモジュールが Linux カーネルにあったと思います。それならFUSEも必要だと思います。

基本的に、ftpfsをマウントできる場合は、svn エクスポートをマウントされたフォルダーに直接書き込むことができます。

于 2012-06-26T09:12:17.487 に答える
3

FTPについてはよくわかりませんが、SSHの方がはるかに簡単で、圧縮率が高くなるはずです。SSH 経由でリポジトリを送信する例は次のようになります。

svnadmin dump /path/to/repository |ssh -C username@servername 'svnadmin -q load /path/to/repository/on/server'

情報がMartin Ankerl のサイトにあることがわかった URL

[アップデート]

質問に対する@trejderからのコメントに基づいて、ssh経由でエクスポートするには、私の推奨事項は次のとおりです。

ローカルのフォルダーに svn エクスポートしてから、次のコマンドを使用します。

cd && tar czv ​​src | ssh example.com 'tar xz'

ここで、src はエクスポート先のフォルダー、example.com はサーバーです。

これにより、ソースフォルダー内のファイルが取得され、tar および gzip されて ssh 経由で送信され、ssh でファイルがマシンに直接抽出されます....

于 2012-06-26T09:12:43.227 に答える
1

私はこれをしばらく前に書きました - おそらくここで役に立つでしょう: exup

于 2015-10-05T11:32:19.657 に答える