2011-02-01 11 views
2

ソース管理の質問がいくつかあります。自分自身と他のWeb開発者が、古いプロジェクトと将来のプロジェクトのソフトウェア開発を引き継ぐために会社に加わった。古いプロジェクトは、外部の請負業者によって独自のバージョン管理システムが開発されているため、ソース管理はありません。私はすぐに1つのセットアップをしたいが、私は答えを見つけることができなかった2つの一般的な選択についていくつかの質問があるので、別のGitHub対Subversionのトピックではない。ソース管理に関する質問

保存するプロジェクトの背景。いくつかの古いプロジェクト、主にドライバ/ファームウェアがあります。新しいプロジェクトは自分自身でもっとネット/ Javaベースになり、Web開発者はウェブサイトのコンテンツを保存したいと考えています。

私が読んで試したことから、私はGithubが好きですが、Web開発者はSubversionの使用にもっと頑張っています。別の考え方として、私はWindowsマシン上にいるかもしれませんし、Web開発者はMac上にあるので、利用できるクライアントは異なります。別の方法をとるのではなく、同じソースコントロールを使用することができれば幸いです。私が使用した最初のソース管理はチーム基盤サーバーでした。そこにはルートから各プロジェクトのリポジトリとサブディレクトリが1つありました。

Q1。基本パッケージであるGitHubについての懸念は、10のリポジトリを許可します。すでに5つのウェブサイト、12の古いソフトウェアプロジェクト、3つの新しいプロジェクト、さらにはまだ来ていることを考えれば、私たちがホストできるプロジェクトの数には限りがあります。 。 Gitを使うと、リポジトリ全体をクローン/チェックアウトするように見えます。 複数のプロジェクトを1つのリポジトリに、異なるサブディレクトリの下に格納することはできません。

SoftwareRepo/Project1の/コード

SoftwareRepo /のProject2 /コード

SoftwareRepo /プロジェクト3 /コード

SoftwareRepo /プロジェクト4 /コード

またはその代わりのサブディレクトリあなたので、分岐を使用してみてくださいそこから分岐する空のリポジトリがあります。各ブランチには、それぞれのプロジェクトごとの内容が含まれています。私がここに見る欠点は、あなたが前のブランチ(以前のプロジェクト)に戻るまで、古いプロジェクトのファイルがファイルエクスプローラで隠されるようにブランチ(または私の場合はプロジェクト)を切り替えるときです。

私たちが必要とするのは、リポジトリの数が増え、使用するディスク容量の上限です。数十もの小規模なプロジェクトが1つあり、実際にはアクティブな開発中にソース管理が必要な場合がありますブランチングのようなGitHubsの強力な機能を利用するいくつかのより大きなプロジェクトです。

クライアントにとっては、SmartGitは、私が最初に使用しようとしたコマンドレーンに対して、作成したテストリポジトリの管理に非常に役立つことがわかりました。

Q2。 SubVersionを使用すると、それを自分でホストすることができます。私は6GBのRAMを搭載したi7を持っているので、仮想マシンを起動するように提案されているが、Web開発者はオフィスに行かなくても大丈夫だから、Subversionサーバはダウンしてしまう。私たちにはビジネスサーバーがありますが、アウトソーシングされた管理者は実行中のプロセスに非常に敏感です。そのためにサブバージョンを置くことはできません。サーバーハードドライブは少なくとも毎日バックアップされています。リポジトリファイルを当社のビジネスサーバに保存し、クライアントを使用してSubversionファイルにアクセスすることも、クライアントがリポジトリファイルにアクセスするために必要なSubversionサーバプロセスだけでもかまいません。 Web開発者は、Amazon E2CクラウドでSVNサーバーを実行することを検討していますが、私はその経験がないのでコメントできません。 私はSubversionに懸念しています。私はそれを以前に使用していましたが、TortiseSVNでいくつかの非常に奇妙なエラーメッセージが表示され、チェックアウトされたフォルダを削除してしまいました。任意のコードをチェックインします。

さまざまなタイプの小さなプロジェクトがたくさんある場合は、どのソース管理クライアントを選ぶか、どちらのアプローチを取るか(オンラインホスト、自分自身をホストする)。 私は、利用可能なオプションの中から最良の解決策を見つけようとしています。

EDIT

残念、私たちは最終的にはSVNで行っています。私の個人的な選択ではありませんが、私たちはWindowsマシン上でGitをセットアップしてサーバとして実行しようとすると非常に困難でした。追加のインストール、SHHのセットアップ、およびコマンドラインによる管理が必要です。このガイドで示されているように、http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/ SVNはVisualSVN Serverを使用し、ネットワークドライブにリポジトリを格納するように指示していました。 1つのインストーラと使いやすい管理コンソール。 管理GUIを使って単一のインストーラとしてGitを実行できるのであれば、SVNエラーメッセージが既にあるので、もっと柔軟で信頼できると思うので、これを使用しました。(破損ファイル/ファイルdoe snotが存在する/ )

+0

gitとgithubを混合することについて謝罪します。あなたはすべて、githubがホスティングサービスであり、SmartGitの機能とサポートがたくさんある正しいものです。 – JonWillis

答えて

4

私はあなたがgitで少しポイントを逃したと思う。 manページから: "Gitはネイティブにssh、git、http、https、ftp、ftps、およびrsyncプロトコルをサポートしています。"それはあなたが望むならあなたがあなたのi7からあなた自身をホストすることができるということを意味するだけでなく、あなたの "ビジネスサーバ"が既にそれらのうちの1つを設定していれば、あなたは何かをインストールするためにsysadminを使わなくてもそれを使うことができます。

また、gitの分散性質は、中央リポジトリを1つだけ持つ必要はなく、すべてのリポジトリを常にオンラインにする必要はないということです。定期的にオンラインで互いの変更を共有している限り、必要に応じて独自のgitリポジトリをホストし、必要に応じて自分の変更をチェックインし、必要に応じて変更を取り込むことができます。そのような柔軟性は、あなたのタイプの状況に理想的です。

+0

Gitは2つのrepos間の接続に非常に寛容です。パッチを電子メールで送信し、一部の中央リポジトリが利用できない場合に同期することができます。しかし、これは非常に便利ではありません:) – 9000

+0

それは本当に、私はしばしば分散システムの重要な利点を見落としています。つまり、 "中央"のリポジトリがオンラインである必要はありません。 Web開発者は、自分のリポジトリにチェックインし、使用可能なときにリモートホストにプッシュすることができます。 リモートホストを移動することはできますか?後でI7からビジネスサーバーに移行してみましょう。 – JonWillis

+0

はい、いつでもリモートホストを移動できます。あなたはそれを使用するすべての人が新しいアドレスを知っていることを確認するだけです。 –

1

私があなただったら、無関係のプロジェクトごとに独立したgitリポジトリを持っていました。私は2つのプロジェクトが無関係であると呼んでいます。通常、両方に調整された変更を行う必要がないときは、同時に両方にコミットする必要はありません。たぶんあなたは無関係なプロジェクトがあまりなく、3-4レポだけ必要です。私は多数の独立した製品をリリースしている巨大なプロジェクトで働いており、私たちは3 git reposしか持っていません。

はい、Subversionサーバーは、svnクライアントが通信できるようにするために実行する必要があるプロセスです。 svn hosting is also widely availableに注目してください。

make the SVN repo follow your git repoでも可能ですので、お互いの好みのインターフェースを得ることができます。この一日を探検してください。

[1][2]などgitを使っている人は、これをホストすることもできます。これはgithubほどセクシーではないかもしれませんが、本当にこれらの機能がすべて必要ですか?ただし、20レポは22ドル、10レポは10ドルです。とか、ぐらい。 Amazon EC2はおそらく同様の料金を請求します。

非常にではない場合は、私は商用SVNとgitホスティングを購入し、あなたの肩から管理、バックアップなどをオフロードすると思います。 gitでは、とにかく各マシンに完全なリポジトリを持っていますが、これは多くの失敗から保護します。

+0

私も、それぞれのプロジェクトごとに別個のリポジトリを考えていました。レガシープロジェクトの中には、ローカリゼーションの変更があり、ローカライゼーションよりも分岐やマージが容易です。しかし、ほとんどのプロジェクトは完全に独立しています。 – JonWillis

1

GitHubはバージョン管理システムではなく、gitのホスティングサービスです。 Gitは非常に簡単にローカルにホストすることができます。 (例えば、、gitolite複数のgitリポジトリをsshを使ってホスティングする場合)

SubversionでもGitでも同じプログラムを使用することを強くお勧めします。個人的には、プロジェクトごとに個別のリポジトリを持つGitをお勧めします。GitHubほど面倒ではありませんが、Gitoliteなどのローカルにホストされたサーバーを使用してください。私は、ソースコードのような重要なリソースへのアクセスを提供するために第三者に依存しないことに対する強い好みがあります。

+0

私はgitoliteを見ていきます、ありがとう。 – JonWillis

1

あなたのsvnに優しいウェブ開発者を満足させるためには、svnをあなたの中心的なレポにすることができます。ローカルマシンでgitを使用し、git-svnを使ってsvnサーバーと話すことができます。

Gitでは、リポジトリ全体をクローン/チェックアウトしているようです。

リビジョン1の完全なクローンである必要はありません。特定のリビジョンからクローンを作成できます。

Q2。 SubVersionを使用すると、それを自分でホストすることができます。私は6GBのRAMを搭載したi7を持っているので、仮想マシンを起動するように提案されているが、Web開発者はオフィスに行かなくても大丈夫だから、Subversionサーバはダウンしてしまう。

可能であれば、クライアントにNASを取得してsvn repoを設定するよう依頼してください。あなたがオフィスにいなくても仕事をするためにあなたの個人(git)クローンを持つことができます。 Web開発者は、svnを使って幸せに作業することもできます。

+0

私はGITとSVNの間で可能な相互作用について聞いてきましたが、問題が発生した場合に備えて1つのシステムを使用することが最善であると信じています。 – JonWillis

+1

私が働いているチームでは、自分自身を含めたいくつかの人がローカルでgit-svnを使用しますが、中央リポジトリはsvnであり、残りのチームはsvnを直接使用します。だからgitを使っている人はそれだけである。 git repoに問題がある場合は、それを修正する責任があります。このリンクをチェックして、gitを使用することを決定した場合に採用できる素晴らしいワークフローの説明を確認してください:http://nvie.com/posts/a-successful-git-branching-model/ – yasouser

+0

そのウェブサイトは本当に便利でした! – JonWillis

関連する問題