1

私は、友人と私が過去の学期に取り組んだプロジェクトから、学校のサーバーにあるサブバージョン リポジトリを持っています。私たちはプロジェクトを取り上げて磨き上げ、よりポートフォリオ アイテムにしたいと考えていますが、レポが学校のサーバー上にそのまま残るかどうかはよくわかりません (通常、数学期後には消去されます)。レポをダンプするアクセス権がありませんが、レポを取得できるかどうかを確認するためにメールを送信しましたが、これが最善の解決策です。

svnsync を試しましたが、学校のサーバーは再生コマンドをサポートしていない (おそらくオフになっている) ため、うまくいきません。

さて、理論的には、(手動またはプログラムで) リポジトリの各リビジョンをチェックアウトし、それを自分のサーバーの新しいリポジトリにチェックインすることはできないでしょうか? うまくいくと思います-私たちは3人しかいないので、心配する必要のある作業コピーの競合はありません.戻って見る必要がある場合に備えて、レポにすべての履歴のコピーが必要です.

そうは言っても、スクリプトを作成して車輪を再発明する前に、このようなものは既に存在しますか? それを行うためのツールがすでに存在するか、誰かがそれを行うためのスクリプトを書いていると考えなければなりません。

4

4 に答える 4

0

Subversion リポジトリへの読み取りアクセスは、常にsvnsyncを使用してそのリポジトリのクローンを作成するのに十分なはずです。これを行う方法の短い例:

svnadmin create new_repos

new_repos/hooks/pre-revprop-change次のようなフックスクリプトを作成します

#!/bin/sh
exit 0
#

実行可能にすることを忘れないでください

chmod u+x new_repos/hooks/pre-revprop-change

次に、同期を初期化します。

svnsync init file:///PATH/TO/new_repos https://old_repos/trunk/subfolder
svnsync sync file:///PATH/TO/new_repos https://old_repos/trunk/subfolder

新しいリポジトリをテストする

svn co file:///Users/bjoern/test/new_repos new_working_copy

フックスクリプトを削除することを忘れないでください

rm new_repos/hooks/pre-revprop-change

リポジトリ レプリケーションの詳細については、svn bookを参照してください。

于 2013-10-10T20:34:40.103 に答える
0

Mercurial を使用する意思がある場合 – a) Subversion からそれほど遠くない、コマンド的に、b) この種の問題を防ぐ、c) 実際に作業するのが楽しい* – convertを使用できます延長。Mercurial に組み込まれているので、有効にするだけです。

※とにかくそう思う

于 2010-04-13T06:18:01.043 に答える
0

プロジェクトに含まれるおおよそのリビジョン数を指定しませんでした。また、各リビジョンのスクリプト ベースのチェックアウトが可能です。しかし、フォルダごとにすべての「.svn」フォルダが作成されるため、現実的ではありません。それらのせいで、あなたは

  1. 別のスクリプトがファイルをチェックインする前に、別のスクリプトでこれらのファイルを再帰的に削除する必要があります。
  2. または、リビジョンごとに svn export を実行してから、それをチェックインする別のスクリプトを作成します。

ご覧のとおり、実現不可能です。そして、これを行うスクリプトを知りません。

ただし、最も重要なコミットごとにリポジトリから多数のエクスポートを実行してから、それらを新しいリポジトリに追加することができます。リビジョンの数が少ない場合は、より簡単になるはずです。

于 2010-04-13T06:47:58.690 に答える
0

svnsync を試しましたが、学校のサーバーは再生コマンドをサポートしていない (おそらくオフになっている) ため、うまくいきません。

svnsyncいくつかの小さな問題のために、それはうまくいかなかったと思います。サーバー側の変更を機能させる必要もありませsvnsyncsvnrdump


HTTP(S) 経由で Subversion リポジトリへの少なくとも読み取り専用アクセス権を持っている場合、またはツールsvn(+ssh)://を使用して完全なリビジョン履歴を確実に取得できます。svnsyncsvnrdump

svnrdumpアプローチ。

コマンドを実行して、完了するまで待ちます。

svnrdump URL-TO-ORIGINAL-REPO > repo.dump

その結果、完全な変更履歴を含む repo.dump ファイルが得られます。コマンドを使用して、後でファイルを空のリポジトリにロードできますsvnadmin load

svnsyncアプローチ。

すべての手順は、(ローカル) マシンで実行する必要があります。

  1. 新しいリポジトリを作成: svnadmin create newrepo

  2. 新しいリポジトリのリビジョン (バージョン管理されていない) プロパティの変更を許可:

    echo exit 0 > myrepo\hooks\pre-revprop-change.bat

  3. svnsync init file:///C:\Repositories\newrepo https://URL-TO-ORIGINAL-REPO

  4. svnsync sync file:///C:\Repositories\newrepo https://URL-TO-ORIGINAL-REPO

于 2015-03-03T16:04:52.590 に答える