問題タブ [svndump]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svn - svnrdumpでダンプファイルのバージョンを指定できますか?
ネットワーク リポジトリのダンプ ファイルを作成する必要があります。通常の svndump ではなく、ネットワーク フレンドリーな svn ツールsvnrdumpを使用してこれを行いたいと思います。ただし、このリポジトリには必要のないものがたくさんあるため、 svndumpfilterツールも使用する必要があります (多くのプロジェクトがこのリポジトリを共有しており、1 つのプロジェクトのみをダンプしたい)。
svndumpfilter - を使用しようとすると、次のエラーが発生しましたE140001: Unsupported dumpfile version: 3
。この記事によると、これは、svndumpfilter が処理できるよりも新しいバージョンの svn ダンプ ファイル形式を使用する svnradmin が原因です。
私の質問は、svnrdump を使用するときに必要なダンプ ファイル形式のバージョンを指定して、svndumpfilter を使用できるようにすることはできますか?
svn - 正確なフォルダへのSVNロードダンプ
1 つのブランチを持つ標準の Subversion レイアウトを用意します。
レポ_1
repo_root
|-branches
|-branch_one
|-tags
|-trunk
そして 2 番目のリポジトリ
Repo_2
repo_root
|-branches
|-tags
|-trunk
|-folder1
Repo_2/trunk/folder1の内容をRepo_1/branches/branch_one/folder1にエクスポートしたい
私はフォルダダンプを作成しています:
svnrdump dump svn://mysvnserver/Repo_2/trunk/folder1 > folder1.dump
次に、それを私のRepo_1にロードします:
svnadmin load Repo_1 --parent-dir branches/branch_one < folder1.dump
そして、次のRepo_1構造
を取得します。
repo_root
|-branches
|-branch_one
|-trunk
|-folder1
|-tags
|-trunk
そこには必要のないトランクフォルダーを取得します。「folder1」を「branch_one」に直接接続する方法はありますか?
svn - 悪いコミットを削除した後のVisualSVNの破損した表現
https://groups.google.com/forum/#!topic/visualsvn/2LpBN8qtEfMをフォローした後
以下の手順では、極端な場合に svn リポジトリ (fsfs バックエンド) への最後のコミットを「元に戻す」方法について説明します: (実際に適用する前に、環境内の「テスト」リポジトリで徹底的にテストしてください)$BAD_REV
- ビジュアル svn サーバーを停止します。
- すべてのリポジトリをバックアップします (不幸なシナリオが発生した場合に備えて)
- 「リポジトリ」フォルダに移動します。
- 最後のコミットを「元に戻す」必要がある特定のリポジトリを選択します。
- db/current を編集し、最初の数値を減らします。それがHEADリビジョンです。
- 消去
db/rev/$BAD_REV
- 消去
db/revprops/$BAD_REV
- ビジュアル svn サーバーを起動します。
注意: すべてのユーザーに、使用したチェックアウトを削除し、$BAD_REV
($BAD_REV
マイナス 1) を使用して再度チェックアウトするよう依頼してください。
この手順の後の 2 回目のコミットの後、次のエラーが発生しました。
エラー コミットに失敗しました (詳細は次のとおりです):
エラー 破損した表現 '199 10142 111 1475 (null)
エラー d18718662872fab9aa981c20a47921768f567189 (null)
これを解決する方法がわからないので、新しいリポジトリを作成したくありません。
svn - 異なるSVNサーバーで並行コミットを組み合わせる
これはできないと確信していますが、他の誰かに提案があるかどうかを確認したかったのです。
新しいサーバーへの移行中に、古いサーバーからリポジトリをダンプし、正常にロードしました。新しいサーバーへのコミットを開始しましたが、まったく問題ありません。しかし、数日後、DNS エラーにより、古いサーバーに再びコミットするようになりました。
今、この問題に気づきました。ダンプとロードのプロセスを再度実行することで簡単に修正できますが、新しいサーバーにコミットした数日間の変更履歴が失われます。両方の変更履歴を保持しながら、これら 2 つのリポジトリをマージする方法はありますか?
svn - SVNDumpFilter はパスを追加する前にパスを変更しますか?
私はsvndumpfilter
、より大きなレポから単一のプロジェクトを抽出し、それらを独自のレポにインポートするために使用しています。このようなもの:
1 つのプロジェクトでは問題なく動作しましたが、2 つ目のプロジェクトでは、結果として得られるフィルター処理されたダンプがパスを追加しても開始されないことに気付きました。最初の 2 つのリビジョン (番号が付け直されています) を参照してください。
Trunk/Source/Project1/Project1.csproj
そもそも追加する前に、どのように「変更」しようとしているかに注意してください。驚くことではありませんがsvnadmin load
、フィルタリングされたダンプで実行すると、「ファイルが見つかりません」というメッセージが表示されます。何か案は?
svn - SVN: プロジェクトを独自のリポジトリに移動するために必要なダンプを最小限に抑える
私の元の質問は以下でした。それ以来、これを機能させることができるかどうかを確認するために、いくつかのことを試しました。
次のような小さなシェルスクリプトがあります。
km.revs.txt
/KeyManagment
プロジェクトへの変更を含むリビジョンのみを含むテキスト ファイルです。
最初にこれを行ったとき、後でフィルタリングを行うと思っていました。ただし、最初にダンプされたリビジョンではkm.svndump
、サイズが 68 ギガバイトを超えました。おっと。2 回目の試行では、プロジェクトを でフィルタリングしていsvndumpfilter
ます。
これはかなり長い間実行されました(私はこれを実行しnohup
、時々チェックしました)。終了するとkm.svndump
、UUID、最初のリビジョン、およびメモリ不足エラーが表示されました。どうやら、私のスクリプトはダンプされる最初のリビジョンに渡されませんでした。
続行する方法はありますか?
リポジトリの残りの部分とはまったく互換性のない特別なプロジェクトを含むリポジトリがあります。リポジトリ全体は、LDAP グループ内のすべてのユーザーが見ることができますDevelopment
。ただし、あるプロジェクトには、そのプロジェクトに携わっている人だけに見せたい情報が含まれています。(当社の KeyManagement プロジェクト)。レポのレイアウトは次のようになります。
/trunk
- レポの残りのトランク/branches
- レポの残りのブランチ/tags
- レポの残りのタグ/KeyManagement
- 特別なキー管理プロジェクト。
のぞき見を防ぐために、svn_acces ファイルを使用して、これを見ることができるユーザーを指定します。KeyManagement
これにより、メンテナンスで多くの問題が発生しました。私は、独自の LDAP アクセス グループを持つ別のリポジトリを作成したいと考えています。(独自の LDAP グループを持つ複数のリポジトリが既にあります)。
問題は、リポジトリに 175,000 を超えるリビジョンがあり、それらのリビジョンのうち 124 のみが KeyManagement プロジェクトに関係していることです。175,000 のリビジョンをすべてダンプするには、約 30 時間以上かかります。必要なリビジョンだけをダンプできれば、ダンプ全体を数時間で完了できます。
他の問題はこれです:
どうやら、KeyManagement
かつては下にもあったらしい/trunk
。ダンプとロードを使用した以前の経験でsvndumpfilter
は、ダンプとロードの両方/KeyManagement
を/trunk/KeyMangement
同時に行う必要があります。/trunk/KeyManagement
正直なところ、アプリケーションは完全に作り直されており、誰もコードを気にしていないので、私は気にしません。
ダンプの最初のリビジョンが完全なリビジョンであることを理解しています。私がこのようなことをすることは可能ですか:
KeyManagement に関係するリビジョンをダンプするだけです。の下のバージョンは気にしません/trunk
。それ以来、プロジェクトは完全に改訂されていました。リビジョンを知っているので、これを行うためのシェル スクリプトを簡単に作成できます。KeyManagement に関係するリビジョンには、他のプロジェクトが絡んでいるものはありません。
これを行うのに40時間以上かかりたくありません。
svn - リビジョンから svnadmin ロードを再開する方法
サーバーへの接続が終了し、ロードが停止したときにロードしていたダンプ ファイルがあります。新しいリポジトリに移動して、最後のリビジョンが何であるかを確認できました。私が読んだ内容は、ごくわずかですが、既存のダンプ ファイルの先頭を使用してダンプ ファイルを再構築し、既にロードされているリビジョン番号に対応するセクションを削除する必要があるようです。
初期ダンプ ファイルを編集せずにロードを開始することはできますか?