のgit-svnの-ヘルパー大幅にSVNリポジトリのためのGitを使用して簡素化するコマンドラインツールのコレクションです。
のgit-svnの-ヘルパーの主な目標は、既存のSVNのチェックアウト」非常に簡単」次のローカルgitリポジトリを設定することです。
また、(通常は)異なるブランチの複数のチェックアウトに取り組んでおり、それらの間の切り替えのための単一のgit-svnのリポジトリを使用して対処する。
の基本的な使用法(例)の
エグゼクティブサマリー:
> CD·パス/に/ SVN /レポ
> gitify
ここではサンプルセッションです:
> CDを/ tmp
> SVNの共同https://svn.plone.org/svn/plone/plone.app.form/branches/1.1 plone.app.form
1.1 / setup.py
...
チェックアウトしたリビジョン27228。
> CDのplone.app.form
> gitify
/Users/tomster/.gitcache/に見つかりませgitリポジトリん。
キャッシュへのクローニングを開始する。
SVNのログを分析...
/Users/tomster/.gitcache/に27155:r10593からhttps://svn.plone.org/svn/plone/plone.app.form/のクローンを作成する
/Users/tomster/.gitcache/plone.app.form/.git/で初期化され、空のGitリポジトリ
...
Gitのブランチ「ローカル/ 1.1」になりました、次のされているのsvnブランチ「1.1」:
ローカルブランチで#/ 1.1
(クリーンな作業ディレクトリ)をコミットすることは何もない
> gitのブランチ
*ローカル/ 1.1
 マスター
注意点:
  * gitify(ここではhttps://svn.plone.org/svn/plone/plone.app.form/)パッケージルートのSVNのログで見つかったリビジョンにクローニングを制限した。特に大規模なリポジトリに大きな時間の節約、(例えばplone.collectiveなど)
  * gitifyは、〜/ .gitcacheしない場所でのgitリポジトリを作成しました
  * gitifyは(リモート)のsvnブランチ1.1を以下のローカルブランチローカル/ 1.1を作成し、それに切り替え
の複数のチェックアウトの
実際には、あなたは、多くの場合、すなわちトランク上及び機能ブランチに、与えられたリポジトリの異なるローカルコピーで動作します。上記で作成した.gitcacheディレクトリが便利になるときです。それでは邪魔にならないように私たちの前のチェックアウトを移動して、トランクを、次のメンテナンスチェックアウトを作成してみましょう:
> CD ..
> MKDIR機能 - ブランチ
> MV plone.app.form機能ブランチ/
>は、mkdirメンテナンス
> CDのメンテナンス/
> SVNの共同https://svn.plone.org/svn/plone/plone.app.form/trunk plone.app.form
plone.app.form / setup.py
...
  Uのplone.app.form
チェックアウトしたリビジョン27228。
私たちはここにgitify実行した場合はどうなりますか?:
> CDのplone.app.form /
> gitify
Gitのブランチ「ローカル/トランク」今のsvnブランチ「トランク」を以下の通りです:
ブランチローカル/トランク上で#
(クリーンな作業ディレクトリ)をコミットすることは何もない
我々は今、キャッシュディレクトリ内の既存のgitリポジトリを使用していたように、この操作は、はるかに速くなったことを、注意してください。これは、さらに利用可能になりまし地元の支店を見ることによって証明することができます。
> gitのブランチ
 ローカル/ 1.1
*ローカル/トランク
 マスター
の注意事項の
このように「リサイクル」は.gitは、実際にはうまく(おそらく驚くほど)に機能しますが、次の点に注意してくださいする必要があります。
すべてのチェックアウトは、同じインデックスを共有!
それでは、これは私達の機能ブランチに戻って切り替えることで、何を意味するのかを見てみましょう。
> CDの../../feature-branch/plone.app.form/
> gitのステータス
ブランチローカル/トランク上で#
#変更しましたが、更新されません。
#(コミットがどうなるかに更新する」... gitのRM /追加」を使用)
#( - 作業ディレクトリの変更を破棄する "... Gitのチェックアウト」を使用します)
#
#修正:ドキュメント/ HISTORY.TXT
...
#削除された:Ploneの/アプリ/フォーム/ KSS /テスト/ test_kss.py
...
#
#人跡未踏のファイル:
#( "gitのを追加...「コミットがどうなるかに含める使用してください)
#
#のPloneの/アプリ/フォーム/テスト/ test_kss.py
Wohah!何が起きたかというとは.gitが今トランクに指し、それはファイルシステムが何を表すかであるため、このようにステータスコマンドは、ローカルの変更としてそのと支店の違いを示していることである。私たちは、サブバージョンstatusコマンドを使用してこれを確認することができます:
> SVN ST
ふぅ!すべてのために!しかし、gitのをどうするか?私たちは、トランクで作業を終了し、バック私達の機能ブランチに取得したいが、gitのインデックスはすべて間違っているだ!シンプル:ちょうどgitify再実行:
> gitify
Gitのブランチ「ローカル/ 1.1」になりました、次のされているのsvnブランチ「1.1」:
ローカルブランチで#/ 1.1
(クリーンな作業ディレクトリ)をコミットすることは何もない
基本的に、それはあなたが同じパッケージの複数のチェックアウトを使用する際覚えておく必要があるすべてです:チェックアウトを切り替える際には、必ずgitify実行します。
のこのリリースのの新機能! :
- cannonicalリポジトリがhttps://github.com/collectiveに今ある。 [rossp]
- 扱いを修正しました。 [rossp]
Gitはすでにためのローカルブランチがあるのsvnのブランチに切り替えるとき、
のバージョン0.8のの新機能は次のとおりです。
- SVNリポジトリがされている場合は、initコマンドを一緒に従うことを確認別のブランチに切り替える。問題の報告は、カルバン·ヘンドリックス·パーカーに感謝します。 [tomster]
のバージョン0.7のの新機能は次のとおりです。
- 作業コピーを作成するために完全なコピーの代わりにシンボリックリンクを使用してください。これは同じリポジトリの複数のコピーでの作業と大幅に紛争のリスクを低減するとき同期していのgitとSVNリポジトリを持っていることの問題を回避できます。
- これはまた意味し、フェッチコマンドは今だけ(たとえば、crontabファイルを経由して実行することが安全にする)作業コピーを変更することなく、キャッシュ上で動作することをします。
- は古いスタイルの作業コピーに対してgitify実行すると、エラーが生成されます。単にしかし、シンボリックリンクを削除し、再実行gitify救済そのます。
- もう一つの効果は、initコマンドは、現在のみ(それは同じリポジトリの異なる作業コピーの切り替え後にコマンドを再実行する必要はなくなりました)各作業コピーに対して一度だけ必要とされることである。
- gitify initコマンドにはできなくなり、デフォルト(いずれもgitのもSVNのは、W / O明示的なアクションを供給して何かを行うのと同様に)。また、それは、initにgitify(背面)から名前が変更されました。 [tomster]
- ヘルプ、--versionを許可し、[tomster] 外側の.svnディレクトリを実行するためのコマンドをフェッチ
のバージョン0.5のの新機能:のgit - svnのリベースを行います。
- を追加しましたgitify更新コマンド、現在のSVNのチェックアウトのための操作だけでなく、gracelullyコミットされていないローカルの変更を処理します(のgit svnのとは異なりますが、SVNが行うように)します。
- ユーザーからのフィードバックのためのロギングモジュールを使用しなくなりました。そのアイデアはかなり見当違いだった。
のバージョン0.4のの新機能は次のとおりです。
- ただgitify使用するエントリポイントをリファクタリング。その他のすべてのコマンドは現在gitifyのサブコマンドです。
- GSコミットgitifyプッシュに置き換えられています。
- GS-フェッチは、 フェッチgitifyに置き換えられました
- 各コマンドを追加しました使用法とヘルプ出力します。
- それが唯一の今までとにかくメインgitifyコマンドと一緒に使用したのGS-クローンエントリポイントを削除します。
- 標準出力します。 だけに印刷するのではなく、適切なログを使用してください
- はSVNリポジトリのクローンを作成し、それに戻っコミットのサイクルをコミット/全体更新をカバーする機能テストを含む総合的なテストを、追加しました。
- バグ修正:
- バグ修正:これは)http://github.com/tomster/git-svn-helpers/issues#issue/1解決する依存関係として明示的にElementTreeのをリストします。
として、カスタムエイリアスを使用しないでください。
のバージョン0.3.1でのの新機能である彼らがインストールされていない可能性があります。これが解決しhttp://github.com/tomster/git-svn-helpers/issues#issue/2ます。
の新しいのバージョン0.3ベータは何ます:
- バックにコミットすることができますGS-commitコマンドを追加しましたSVNと同期してgitのとSVNを維持します。
の新しいのバージョン0.2ベータは何ます:
- キャッシュを維持に役立ちますGS-フェッチコマンドが追加されました最新ます。
の要件の
- のPythonます。
コメントが見つかりません