2009-07-09 18 views
4

Googleコードでホストされているプロジェクトのコピーをチェックアウトしました。私はそれに変更を加えようとしており、ローカルマシン上のリポジトリのバージョン管理下に置いておきたいと思います。SVNリポジトリのローカルコピーにコミットする

可能であれば、私はすでにリポジトリの作成、チェックアウト、コミットという非常に基本的な知識があるので、私はsvnを使いたいと思っています。

私はsvnでこれを行うことができますか、または私はdistibutedバージョンコントロールを見ている必要がありますか?私はWindowsではなくLinuxを使用しています。

+0

Linuxに基づいて返信を修正しました。 - ノートEclipseは素晴らしいGUIサブバージョンプラグインを提供します。 –

+0

最初はニック・ルイスの答えを選びました。 googlecodeからのエクスポートを行い、それらのファイルをローカルリポジトリに追加すると、私が最初に質問したときに必要だったように、svnだけに固執することができます。 数日後、私は水銀でJon Weldonの提案を試しました。基本的な水銀コマンドを学ぶのはすばやく、プロジェクトがgooglecodeで更新された場合、ローカルリポジトリに変更をインポートする方がはるかに簡単です。受け入れられた答えを変更することは、自分自身の経験、YMMVを反映しています。 – Alasdair

答えて

6

svnリポジトリの上にあるローカルリポジトリとして、mercurialまたはgitを使用してリモートリポジトリに対してsvnを使用することは非常にうれしく思います。

これらは両方とも分散ソース管理ツールであり、どちらも少し違う理由で両方が好きです。

私は

更新...リモートのSubversionリポジトリと一致している私自身の地元のレポを使用することは非常に強力であることがわかってきました

が、私は本当にGoogleからのエクスポートについての回答のように私はsvnとgit/mercurialの組み合わせについて本当に好きなことは、あなたが定期的にGoogleから最新のコードを取得するためにsvnの更新を行うことができることです、そしてgit commitまたはhg commitにローカルレポに最新のコードを追加してください。

定期的にsvnをリポジトリにエクスポートして更新を取得するよりもずっと簡単です。

さらに、git/mercurialを使用すると、svnで簡単にはできない強力な分岐/パッチツールが利用できます。

+0

私はなぜgitとsvnを組み合わせる方がおそらくより洗練された解決法なのか理解できます。しかし、この場合、svnを使うことは十分であり、コーディングを速くすることができます。私は将来git/mercurialを試みます。 – Alasdair

+1

「将来は」数日後に判明しました。この回答は私のためにとてもうまくいきます。 – Alasdair

3

はい!バージョンコントロールツールを使用してください。 SVNは非常に使いやすいので、私はそれをお勧めします。

便利なことは、Eclipse + PyDev(Python用)+ Subeclipse(あなたのSVN用)を使用できることです。これは、プラットフォームに依存しない独立したスタックでなければなりません。これはGUI対応のSVNクライアントに勝ちます。ほとんどのEclipseパッケージに付属のプラグインMylynをチェックしてください。本当に素晴らしいです。

あなたの代わりとなるWindowsユーザーはTortoiseSVNです。チュートリアルにしたがってリポジトリを作成してください。

「File」プロトコルを使用している単一のユーザーにとって最も簡単なのは、やや難しいのは、適切なSVNサーバーを設定することです。これは、SVNをよりよく理解するまで延期することをお勧めします。複数のマシンから作業することができます。

+0

リポジトリは私のウェブホストのサーバー上に生きているので、私はコマンドラインで手を汚す必要があります。 WindowsでTortoiseSVNを使用しましたが、guiは非常に便利です。私はsomepointでSubeclipseをチェックアウトします。ヒントをありがとう! – Alasdair

1

svn commit(リモート)リポジトリに変更をコミットします。リモートリポジトリに移動する前にローカルにチェックインしたい場合は、gitやmercurialのような分散ツールが必要です。

2

SVNは非常に優れたバージョン管理システムです。これは多くの重要なプロジェクトで使用され、同時に使いやすい一方で強力なオプションもあります。

ローカルコピーがGoogleコードを指している場合。基本的にはバージョン管理情報を取り出してローカルのSVNにインポートするエクスポートを行うことができます。

これはあなたが以前に行ったすべての履歴を失い、最初から開始し、その後に行った変更をローカルで行い、あなたのSVNにコミットします。

Google SVNのすべてのコミットの履歴をローカルSVNのこの時点まで保存する必要がある場合は、これを行うことができますのでお知らせください。

ローカルコードをGoogleコードにコミットする必要がある場合は、その方法を説明するためにもお知らせください。

これが役に立ちます。

+0

ビンゴ!輸出は必要なコンセプトですが、名前は分かりませんでした。ありがとう! – Alasdair

1

はい。

あなたは

svnadmin create repositoryName 

を使用してローカルリポジトリを作成することができます。そして、あなたは、通常のSVNのコマンドを使用して、あなたの最初のチェックアウトを行うことができます。

svn checkout file:///path/to/your/repositoryName 

ちょうどあなたが実際にあなたがGoogleのコードではなく、SVNのチェックアウトを介して取得してきたプロジェクトのエクスポートを行うことを確認してください。さもなければ、別のリポジトリにすでに存在する.svnファイルで問題が発生します。取得したすべてのファイルを取り出し、新しく作成したローカルコピーに移動し、すべてのファイルをsvnに追加してコミットします。

あなたがポートに変更をしたい、単に

svn update 

Googleのコードリポジトリのチェックアウトされたバージョンが含まれているディレクトリ、変更を行うために、すべてのあなたが変更したファイル(または使用の差分を上書き)、リポジトリにコミットします。

1
svnadmin create project-local-repo 
svn checkout file:///path/to/project-local-repo project-branch 
svn export http://PROJECT.googlecode.com/svn/trunk/ project-branch 

これはあなたのブランチのためにあなたのマシン上でプロジェクト・ローカル・レポで新しいリポジトリを作成し、プロジェクト・ブランチフォルダにそのリポジトリからチェックアウト(必要がある)します。次に、ファイルのクリーンコピーをメインリポジトリからプロジェクトブランチフォルダにエクスポートします。次に、それらのファイルを(ローカル)リポジトリに追加してコミットするだけでよいのです。これは完全にテストされておらず、仮説です。

+1

ヘッドアップのおかげで修正しました。私は自分自身でTortoiseSVNを使用しているので、本当にすべての本当のコマンドが分かりません。 :) –

関連する問題