2009-03-02 17 views
3

私の仕事場では、SVNとTortoiseSVN(Windows XP)をクライアントとして使用します。私は長く通勤しており、オフラインで仕事をしています。
今、私はある種の「拡張された取り消し」をローカルにしたいと思います。つまり、私はSVN作業コピーのローカルバージョン管理をしたいと思っています。例えば、リファクタリングすることです。
会社がSVNを使用するので、git、水銀などはオプションではありません。SVN作業コピーのローカルバージョン管理の経験はありますか?

私が知りたいのは、ローカルのSVN作業コピーをバージョン管理する経験があるか、おそらくローカルのgitなどを実行しているのでしょうか?
潜在的な欠点はありますか? (おそらく.svnフォルダやそれに類するもので迷惑をかける)

答えて

1

で説明したように、私は通常、このように実行します。

  1. 作業コピーとしてSVNリポジトリを取得します。
  2. この作業コピーでGitリポジトリを初期化します。
  3. ハックハックハック;
  4. 私のGitリポジトリにコミットします。
  5. 会社からの更新SVN。
  6. 競合を解決します。
  7. 会社にコミットSVN repo完全な機能。
+0

"vanilla" SVNクライアントを使ってすべてのSVNリポジトリ通信を行っていますか、ある時点でgit/subversion統合ツールを使用していますか? – Niklas

+0

TortoiseSVN正確に。 WindowsでのSVNのサポートMSysGitはあまり移植されていません。私は会社のレポで何かを破壊する危険はありません - したがって、私は "会社"と "私"のためのGit "標準" SVNクライアントを使用します。 –

+0

オフラインで作業するときに、別のバージョン管理システムを使用する方法はありますか?例えばローカルのVSS? –

3

私はGitをローカルのSubversionクライアントとして使っています。 Subversionリポジトリのgit svn cloneを実行すると、取得したチェックアウトには隠しディレクトリ.svnはなく、完全なGitリポジトリになります。ローカルで軽量なブランチを使用して自分の開発を整理する機能は、私にとってはキラーな機能です。

私が常時使用しているその他の機能は、git stash、段階的なコミット、およびgit add -pです。

+0

これはWindowsでですか? – Niklas

+0

これは実際にはOS XとLinux上にあります。私はあなたがWindowsを使用していることを知っていますし、Windowsでgit-svnが一度に動作しなかったことを知っています。おそらくそれは今です。 –

+0

いいえ、git-svnはWindows上でうまく動作しません。少なくともMSysGitを使用しているときは。 –

0

前回私はSVNのステータスをチェックしましたが、ローカルチェックインサポートはまだ長期的な機能プランでした。一方、gitは間違いなくgit-svnを使用しています。つまり、あなたのアーキテクチャがUnix、AFAIKの場合、git-svnはWindowsプラットフォームではまだサポートされていません。

1

svn exportを使用して作業のスナップショットを作成し、独自のSubversionリポジトリを作成し、作業リポジトリのスナップショットを初期チェックインとして使用できます。

あなたが変更を加えて、あなたのローカルリポジトリのコピーをあなたの完了まで使うことができます。もちろん、主な作業リポジトリから定期的なマージを行って、コンテンツが最新であることを確認することもできます。最後に、リファクタリングが完了したら、ローカルリポジトリのsvnエクスポートスナップショットを作成し、メインの作業リポジトリにマージします。

これは少し粗悪ですが、これがこのタイプのワークフローを管理する唯一の方法です。

十分なアクセス権があれば十分です。コンテンツのブランチを作成し、ワークリポジトリのブランチで排他的に作業し、拡張UNDO機能が必要な場合はローカルリポジトリメソッドを使用できます。もちろん、ローカルバージョン管理システムを使用しているこの時点では、あなたを転覆に制限することはありませんので、あなたの選択を取る。

0

ローカルSVNサーバーを実行できないようにするものはありません。私はそのように使用しています。Gitは(あなたが非常に簡単に多くの枝を作成し、マージすることができますので)良い解決策になるだろうが

0

  • SVNへのご変更を再インポートするとき、あなたは下に作成したクリーンアップが最初に多くの中間の枝べきgit;
  • あなたはのgit - のsvnランニングを作ることができれば、あなたは
  • Windows上で作業している場合はLinuxの仮想イメージを使用する場合がありますので、のgit - のsvnはgit2svnらsvn2git Rubyスクリプトを使用し、GitリポジトリのWindowsディストリビューションでは動作しません。 、 this question
1

転覆に基づいた分散型VCSのSVKを試してみるとよいでしょう。ラップトップの公式リポジトリをミラー化し、コミットを公式のトランクと同期させるのに使用できます。

+0

+1これはSVKが本質的にこの問題を解決するために設計されたためです(オフラインSVNがコミットします)。しかし残念ながら、それは異なる作業コピーフォーマットを持ち、TortoiseSVNでは動作しません。 –

+0

:P TortoiseSVNについて知らなかった...まあ... –

関連する問題