で異なるgit-svnのクローン同svnリポジトリに含まれる情報に関する一株に変更しgit svn dcommit?

StackOverflow https://stackoverflow.com/questions/1880405

  •  18-09-2019
  •  | 
  •  

質問

を読んでも"からsvnにgitの"その他"のgit-svnワークフロー"の記事のだと思いしばしば対応過度に単純です。いを対象とったばかりを利用したいgitやハッキング現地を使用せず、フルパワーのgitのように引っ張ったり、フェッチが合併し、複数の開発者が全てのクローニングのsvnリポジトリにgit-svn、その意見を表明するものではなく、できるpushその変化の他、(公式)svnリポジトリに戻り組gitの共有やかんなど。

つこれらの記事を認できないかな純gitの結果、ねじアップして明確に説明されていない(かもしれないですか?).でも、git-svnのmanページの違点がないかどうかの広がります。

えっくりとした感じがあった場合の問題git-svnを使用する特定の方のご説明します。できるうえについて知っておきましょう。

ここでは"できたのはす:

  1. いプロジェクトのsvnリポジトリ
  2. 開発者は、git-svn-クローンのsvn呼ぶ。たろいものの現地
  3. 開発者億git-svn-クローンはsvn呼ぶ。たろいものが生まれることです。
  4. 後この間、追加♪C/D/...、その他の開発者な"標準"svnティ-インターナショナrepoのgitのユーザーが共有したいコードをなすべての種類のgitマジックがあります。
  5. いずれgitユーザーへの動きに合併しに変更svn(dcommit?)

私の質問は私の夢?読んだ時間前には、gitを予いと思い、git-svn-クローンを作っgitリポジトリのコースは"ミラー"のsvnレポ、そのgitレポ作成する方法により異なる開発者が異なる"id"をいう異なるハッシュ.私の理解したそのgitレポなシェアはgitの祖先は、このような使用できるすべてのgitコマンドで共有する必要があり、追加です。それは真実で、しいて問題がこのワークフロー?

もんすることが不可欠であると、少なくとも、"公式の"裸のgitリポジトリ、そうでも快適にお過ごしいただけれgit-svn-クローニングは、すべてのgitのユーザーが起こします。され、その後必要な方は、担当の中心に位置するこgitレポ収集の変化との間にgit♪前dcommiting全てのsvn呼ぶ。これを解決するための唯一の方法gitを利用するのか、"知"は、独自のgitレポ-レートからsvnいう使gitコマンドとなります。一人の人が必要となる場合があるが堪能でもgit svn(ウgit-svn注意)の"統合マネージャー"(たんば).

私は完全に誤解git-svn注意?がより簡単ないということが?

役に立ちましたか?

解決

問題は、ステップ4のコースです。A dcommitうとする再生地の歴史はサーバー通信を行います。DcommitぬふりをするんSVN client.また、このコードだdcommittingだけでなく、明らかにするようお願いったことは反省すべきだと思いあなたにお届けするdcommitにSVN.

この グル 書き込みは:

  • のもとの相互運用性SVNで おすすめすべてのgit-svnのユーザー クローン,取得、dcommitから直接 のSVNサーバのリモートSVN リポジトリ)と、すべての git-クローン-プル/merge/pushオペレーションが行 間のgitリポジトリ支店 いずれかを介して取得git svn クローンとも押さえるために利用されている バチェンジセットをリモートSVN リポジトリ
  • 推奨される方法の交換コードとgit支店 ユーザーはgitフォーマットパッチは、git am、git svn dcommitのSVN リポジトリ
  • 以来、git svn dcommit用git svn rebase内部的には、gitの支店まで git push前git svn dcommitに しが必要にな強制力は上書き 既存のrefのリモート リポジトリこれは一般的に る不良の実践に git-押し文書化します。
  • 走行git合併またはロ設定することはお勧めできませんの支店を計画していま git svn dcommitます。SVNな 表現が合併任意の方法を適用 有ファッションでユーザーを用いSVN れな合併しています。さらにこのgit合併またはgit プルからgit支店となる ミラーのSVN支店、git svn dcommitに委託する場合があり、間違った ます。
  • gitクローンのないクローンの支店のref/remotes/階層や 他のgit-svnのメタデータ、またはconfig.なので リポジトリに作成、管理 使用git-svnを使うべき rsync クローンがクローニングできると思われ ます。
  • して利用するべきではありませんの訂正オプションのgitコミットに変更し 既にdcommitted.であ と悪い練習を修正 を犯して押し出されて、 リモートリポジトリその他のユーザーに対して、 dcommitとSVNに類似す。に関する詳細につきまき での変更を単一のコミットおよび 問題の歴史を書き換え.

他のヒント

私の実験を重ねてきた多くのこ最近、私が管理しくセットアップが少します。そう、厳しいrebaseみ体制はあまりに複雑になページをご覧の皆様へにGitのために働く現地での速度、歴史、赤、インデックスです。

利用できる支店の裏きとその他のGitのユーザーがチームがそうだと思うな個人的に実験を行った。どんなリニアライズにログ前dcommittingしないと反映されません。

こちらのハロウィンパーティー(繰り返しの多されてい):

  1. クローンのSubversionレポ-レートを"取得"レポ-レートは、中央サーバ
  2. Initの"裸の"レポ-レートを同じサーバ
  3. 押上からのfecthingレポ-レートは、ベアポンド
  4. いークローン、ベアポンドとし
    1. git svn init svnurl 設定は、git-svnリモート、
    2. git update-ref refs/remotes/git-svn refs/remotes/origin/master なので、git-svnはポインタを修正
  5. 自動的にcommitフック)の"取得"svnレポrebase、押しの素repo
  6. 開発者から引きのレポ-レートと git pull --rebase
  7. 開発者走行 git svn dcommit 初めての繰り返しの update-ref 上記の場合は新しい改正からSVN.

あり イラストをワークフローをこのページ (環境にやさしい評判のコンテンツ提供者に帰属できるインラインの画像)となっています。更新:舞台裏について語ってくれた:

私が行うために使用何、初期のgitのsvnクローンを作成され、その後、彼はGitのを使用してdeveloppersの間で.git共有ので、私たちは正確に同じ参照を持っていた。

私たちがいる限り、我々は(つまり、マージするのではなく、リベース)リニアツリーにとどまったとして、Gitのユーザーの間で「特定のGit機能」を使用することができましたとして正しく動作するように見えます。

どの"分散型"の問題であり、お一つの裸のgitレポクローニング中。
に関する輸出-輸入相のSVNレポ、その他の使用は、スクリプト
git2svnとsvn2git で封止のマジックがあります。

その他の注意事項作業する場合にはGit SVNレポつの質問 "ワークフローとgitは、2svnプロジェクトシングル"workcopy""

Subversionリポジトリと同期Gitリポジトリを共有する問題を解決するツールがあります。

SubGit のGitは、SVN双方向サーバ側のミラーである。

一つは、SubversionリポジトリにSubGitをインストールしてもらうことがGitのリポジトリが自動的にSVNと同期します:

$ subgit configure $SVN_REPOS
# Adjust $SVN_REPOS/conf/subgit.conf to specify branches, tags and other options;
# Adjust $SVN_REPOS/conf/authors.txt to specify git & svn authors mapping
$ subgit install $SVN_REPOS
...
$ INSTALLATION SUCCESSFUL

SubGitは、GitのリポジトリにSubversionリポジトリ、事前に受信して、ポスト受信のフックに事前にコミットし、コミット後のフックをインストールします。結果として、それはすぐにSVNとGitの側からの着信変更を変換します。 SubGitインストールした後、開発者は、クローンとGitのリポジトリと連携するために、任意のGitクライアントを使用することができます。

SubGitのgit - のsvnに依存しない、それが私たちのチームが開発した独自の翻訳エンジンを使用しています。これについての詳細はgit-SVN の比較対 SubGitで見つけることがあります。 SubGit上の一般的なドキュメントはこちらをrel="nofollow"> href="http://subgit.com/documentation"利用できる

SubGitのバージョン1.0は、Subversionリポジトリへのローカルアクセスを必要とする、すなわち、SVNやGitのリポジトリは、同じホスト上に存在しなければなりません。しかし、SubversionとGitのリポジトリはどこにでも配置することができ、唯一のGitリポジトリがそれらにインストールさSubGitているとき、バージョン2.0で、我々は、Gitのプロキシモードを導入しようとしている、すなわち、Subversionリポジトリはそのまま残ります。

SubGitは、市販品です。それは、最大10のコミッターのプロジェクトのためにも、オープンソース、学術プロジェクトとは無料です。

免責事項:私はSubGitの開発者の一人です。

私は示唆してこのブログの記事を見つけまだmasterブランチにプッシュ/プルを行うことが可能になるよう、Subversionリポジトリと同期するための別のブランチを保ちます。

私はのgit - SVNで感じる問題の一つは、それがコミットコメントにはgit-svnの-IDを格納していることです。このコミットその書き換えたので、それはそれはSHA1です変わるので、あなたは、人々がそれを共有する任意の場所にそれをプッシュすることはできません。

代わりに、それはSVNのリビジョンプロパティはローカルリビジョン書き換えを意味している代わりに、機能を使用して、リモートSVNのリビジョンでのbzrのREVIDを格納するために

私は実際のbzr-svnのを好みます。また、同じSVNブランチの二つの独立引っ張るが同一と相互運用可能bzrのブランチになりますことを、所望の特性を持っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top