自分用にソースコード管理システムを設定するにはどうすればよいですか?


23

私はオフィスのデスクトップでプログラムしますが、時には自宅のラップトップの別の部屋で、さらには家から離れていてもプログラムします。必要なのは、必要に応じて作業を一方から他方に自動的またはオンデマンドで同期するシステムです。

私はホームネットワークを設定していません。それはできると思いますが、おそらく別の取締役会にとっては質問でしょう。ソースコードをクラウドに保持するようなシステムについて考えてきましたが、これを開始するのに十分な知識がありません。これを行うには、一種の無料または安価な方法が必要です。

私は.NET(実際にはWindows Phone 7)で働いています。


1
Dropboxを使用して、両方のマシンにインストールするだけで完了です。その無料(最大2GB)。あなたの状況では、ソース管理はオーバーザ(IMHO)です。
ダークナイト

26
ソース管理は決して絶対ではありません(IMHO)!
モンガスポン

4
Gitをインストールして実行するには、ダウンロード帯域幅に応じて15分未満かかります。
モンガスポン

2
Dropboxをインストールして起動するには、ダウンロード帯域幅に応じて3分未満かかります。
ダークナイト

4
DropBoxはひどい提案です!適切なバージョン管理システムではなく、データを共有するためのものです。それは非常に持っている厄介なアップロードの習慣を、ダウンロード変更はファイルを保存し、他のすべてのクライアントに同期するたびリアル時間、それは完全にあなたがアーティファクトを構築するものを使用している場合は特に、このすべての未neccesaryネットワークトラフィックをやって、あなたのマシンをダウン湿原DropBoxにある同じディレクトリ内。Gitまたは同等のDVCSを学び、使用します。

回答:


39

最も簡単な方法は、オンラインシステムのいずれかを使用することです。GitHubまたはBitBucketをチェックアウトします。GitまたはMercurialの詳細については、それぞれGit ReferenceおよびHg Initをご覧ください。


たぶん、すべてのマシンがインターネットに接続しているが、他のユースケースがある場合。たとえば、私はいくつかのSubversionリポジトリをUSBフラッシュスティックに、いくつかの大きなリポジトリ(ソースコードではなく写真や物)を外部ハードドライブに保管しています。私が移行に満足したら、USBフラッシュドライブにMercurialリポジトリがあることもあります。1つの理由-私は今でも多くのことにWindows XPを使用していますが、最近ではインターネット上でそれを許可しません(ラップトップまたはデスクトップ)。
Steve314

21
GitやMercurialのような分散バージョン管理システムの良いところは、ローカルでリポジトリを操作し、「ネット接続が便利な場合はいつでも中央サーバーと同期できる」ことです。OPにとって理想的なソリューションのように思えます。
ミシェルティリー

@Brandon-外付けドライブのメインリポジトリでも機能します。常時接続するのは苦痛です。
Steve314

2
BitBucketには無料のプライベートリポジトリがあり(GitHubとは異なります)、おそらくOPのより良いオプションになるでしょう。
ケビン・ヤップ

ローカルで実行することを提案しなかった理由は、彼はそれを快適に感じるだろうと思わなかったためであり、彼はそれへのリモートアクセスが必要だと言った。しかし、明らかに、ローカルで実行してクラウドリポジトリにプッシュするのが、最善で最も安全な方法です。
ピーターローウェル

7

ローカルリポジトリを作成できるGitやMercurialなどのDVCSを使用して、Dropboxをインストールし、プロジェクトフォルダー(もちろんリポジトリフォルダーを含む)をDropboxフォルダーに配置できます。

Dropboxは同期を処理し、同期間の1か所でのみ変更している限り、オフラインの状況を処理できます。

BTW Dropboxはデフォルトではファイルを公開しませんが、必要に応じて公開できます。

編集

Dropboxがファイルの同期に失敗した場合のリポジトリの整合性については、メインPCのDropboxフォルダー外にマスターリポジトリを作成してプッシュできます。したがって、Dropboxフォルダー内のローカルリポジトリが破損した場合は、メインPCから復元するだけです。しかし、リポジトリの破損は経験していません。



基本的に私がやること。Dropboxのメインリポジトリであるデスクトップとラップトップ上のMercurialリポジトリ。
デビッドソーンリー

@David私は逆に、PCのメインリポジトリ、Dropboxの作業リポジトリ、作業中のソースコードファイルを含めて行います。
エンディチャジョノ

@Endy Tjahjono:コメントから、あるコンピューターで作業をしているように聞こえます。私は時々デスクトップを使い、ラップトップを時々使うので、そのうちの1つにメインリポジトリを置くことは実際には機能しません。
デビッドソーンリー

@David私の間違い、メインPCで「バックアップ」レポを言うべきだった。私の「メイン」リポジトリは、Dropboxフォルダー内の作業リポジトリです。バックアップの目的で、時々バックアップリポジトリにプッシュするだけです。
エンディチャジョノ

6

分散VCSのセットアップ方法に関する簡単な手順を次に示します。gitまたはmercurialを使用する利点は、リポジトリが単なるファイルシステムであるため、すべてを機能させるためにサーバーをセットアップする必要がないことです。コンピューターのコードの隣にローカルリポジトリがあります(gitでは1つの.gitフォルダーがあり、mercurial .hgではプロジェクトパスに1つのフォルダーがあります)。

gitを使用する

ステップ1:gitをダウンロードしてインストールします。Windowsの場合、TortoiseGitを使用できます。いくつかのセットアップノートはこちらです。

ステップ2:gitコミュニティブックに従って、プロジェクトのローカルリポジトリを初期化し、リポジトリにコミットします。

ステップ3:物をgithubである「クラウド」に配置するには、このチュートリアルに従ってください

Mercurialを使用する

ステップ1:mercurialをダウンロードしてインストールします。Windowsの場合、TortoiseHgを使用できます。

ステップ2:クイックスタートガイドに従って、プロジェクトのリポジトリを作成し、リポジトリにコミットします。

ステップ3 bitbucketである「クラウド」に物事を置くには、このチュートリアルに従ってください

.NETで作業している場合、執筆時点でのWindowsでのよりより良いサポートのため、Mercurialを使用することができます。


2

すでに@ peter-rowellや他の人が正当に言っているように、最も簡単な方法は、GitなどのDVCSと、GithubやUnfuddleなどの対応するオンラインシステムを使用することです。私は個人的にGitとUnfuddleを使用しています。

自宅でインターネットに接続することも問題ではないことを述べたので、ブラウザで実行され、クラウド上で動作するこの新しいオンラインIDEがあります。私は以前にこのようなものが利用できるとは知りませんでしたが、これは非常に興味深く、クールに見えます。とはいえ、あまり使用していませんが、かっこいいです。


Unfuddleは素晴らしいサービスです。基本的には、いくつかの素晴らしい調整を加えたredmineのコピーです。
Keyo

2

ほとんどすべてのDVCSが役立ちます。

最も人気のあるのはGit、mercurial、および他のいくつかです。しかし、私は本当に化石が好きです。単一の(小さな!)実行可能ファイル、簡単に移植できる、自己完結型のマルチプラットフォームであり、Wiki、WebベースのGUI、チケットシステム、ドキュメントハンドラなどが含まれています。


1
Bitbucketは、Mercurialホスティングを提供するサービスです。
タマスシェレイ

ありがとう。私はそれを知っていました。しかし、名前は私の心
ハビエル

1

私が提案するオプションはKilnです。FogBugzとStack Exchangeを作っているのとまったく同じ人たちによって作られています。だから、それはかなり良いはずです。また、私が信じている最大3人のユーザーにとっては無料です。スケールはFogBugzと同じであり、この2つを統合できるため、バグや機能も追跡できます。

Joelがブログの投稿の1つで言ったように、バグ追跡とソース管理は、単独の開発者にとっても常にプラスです。


まあ、それは3人のユーザーのために無料だったかもしれませんが、今では月額ユーザーあたり25ドルです。それでも、クールな製品のようです。
サイバー薬草師

1

コードのプライバシーが問題にならない場合は、Google Codeが実行可能なソリューションである可能性があります。ホスティングの部分を処理し、無料でセットアップはかなり簡単です。Subversion、Mercurial、およびGitをサポートしています。これらはすべてWindowsクライアントを備えています。また、Google IDと統合されるため、プロジェクトに貢献者を簡単に追加できます。そこで、Mercurialを使用して趣味のプロジェクトをホストしています。TortoiseHgクライアントを自宅と職場の両方のコンピューターにインストールしているので、休憩中にプロジェクトに取り組むことができます。


いいね!これについて言及してくれてありがとう-私はまだGoogle Codeについて聞いたことがありません。
サイバー薬草師

0

サーバーのセットアップに関する知識と投資する時間に依存します。

個人的には、ホスティング業者から小さな仮想サーバーをレンタルし、統合されたSubversionリポジトリにApache Webserverをインストールしました(現在はgitに変換しています)。セットアップはそれほど大したものではなく、一度起動して実行すると、もう心配する必要はありません。このセットアップには、バージョン管理リポジトリだけでなく、どこからでもアクセスしたい他の種類のものもセットアップできるという利点があります(たとえば、WIKIと課題追跡をインストールしました)。

オーバーヘッドが大きすぎる場合は、GitHubなどの既に提案されているオンラインシステムをいつでも使用できます。


0

最も簡単なのはおそらくgitプロバイダーを使用することです。githubにはプライベートアカウントの料金を支払う可能性があります。

しかし、svnを忘れないでください、それはシンプルで使いやすいです。おそらく職場で、到達可能な場所にsvnサーバーをインストールできます。(そして、Visual svnサーバーのようなプロジェクトは、これをWindows上で本当に簡単にします。)クライアントとして、Visual Studioプラグインまたはtortoisesvnを使用できます。

覚えておく必要があるのは、コンピューターを切り替えるときにコミットして更新する必要があることだけです。


ここではSVNが正しい答えだとは思いません。SVNよりMercurialの設定が簡単で、SVNよりも優れたシステムであることがわかりました。SVNは中央リポジトリへの直接接続がなければ役に立たず、OPには直接リンクがないように見える2台のコンピューターがあります。
デヴィッドソーンリー

svnは分散型の選択肢よりも簡単です。しかし、彼は常にサーバーにアクセスできないので、分岐したいときは規律を守らなければなりません。とにかく、一人の男はめったにそれをしません。また、コミットする必要があるのはコンピューターを変更するときですので、最適ではないことに同意します。しかし、これは代替手段です。gitを使い始める前に、実際にこのように作業しました。(しかし、gitを使用すると、間違いを起こしやすくなります)。
ヨハン

私の仮定は、彼が仕事に行くとき、彼はラップトップを彼と一緒に動かしているということです。
ヨハン

gitまたはHgリポジトリ(git init)のセットアップにかかった時間、数秒。Subversionでは、最初にサーバーが必要です。これは、git/hg initディレクトリで実行するよりもはるかに困難です。私は焦って怠け者で、GitはSCMの使用(マージ、初期化、コミット)が非常に迅速で痛みがないため、SCMの使用を推奨しています。
-Keyo

0

Beanstalkを使用します。個人用のSVNサーバーとして私にとっては非常にうまく機能しました。Gitホスティングもありますが、私は試していません。最初は無料のアカウントがあり、必要に応じて有料アカウントに移行できます。


-2

ドロップボックス

他のすべてのソリューションは、あなたのニーズに対応しています。

両方のコンピューターにDropboxをインストールするだけです。

本格的なソース管理は素晴らしいですが、あなたの状況では私見は必要ありません。

これが最も簡単な最も簡単なパスです->必要な数のマシンで自動同期フォルダーが作成されます。


1
GitとDropboxを併用できます。stackoverflow.com/questions/1960799/を
...

4
特にGitとHGのセットアップが非常に簡単な場合、ソース管理の使用について誇張されたものはありません。彼がソースコードを必要とする製品コードを書いている場合、彼が唯一の開発者であることは重要ではないと思います。
-richeym

うん、おそらく正しいでしょう。私はただ一人の開発者にとっては単なる不必要でOTTだと思っていますが、それは私の意見です。
ダークナイト

git initgit add .git commit -m "bla"あなたはいくつかのコードをコミットするために知っておく必要があるすべてについてです。難しくはないので、元に戻すことができるという気がします。もちろん、チームにとってメリットははるかに重要ですが、特定の時点にリセットできることが重要です。ブランチとスタッシュができると、私も生産的になります。
Keyo

ドロップボックスでのリアルタイム同期、基本的なロールバックがあります。はい、完全なソースコントロールに比べて何もありませんが、その後はかなり「火事と忘却」
ダークナイト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.