5

週の間に2台のコンピューターからコーディングする必要があります。2台のコンピューター(Mac)を同期する最良の方法は何ですか?SVNのようなソース管理を使い始めました。同期したいコードをチェックインしてもコンパイルされず、同じプロジェクトで作業しているチームの他の人の邪魔になることを除けば、かなりうまく機能します。

ブランチは使いたくない。私がオフィスから家に帰るとき、毎晩分岐するのは意味がありません。

4

13 に答える 13

5

コードをトランクではなくブランチにチェックインすることができます。そうすれば、コンパイルエラーで他の人の邪魔をすることなく、バージョン管理のすべての利点を得ることができます。

ここに、Subversionで分岐する方法の説明があります。

于 2010-02-20T18:38:58.407 に答える
5

他の良い方法はMercurialまたはGITです。

これらはDSCM(分散)である点を除いて、達成しようとしていることと似ているため、このためだけにサーバー全体をセットアップする必要はありません。

コードをチェックインする前に必ずUPDATEを実行し、更新後にプロジェクトがビルドされることを確認してください。

于 2010-02-20T18:39:20.500 に答える
3

Microsoft Foldershare (現在は Live Sync と呼ばれています) などを使用します。無料で、Mac で問題なく動作します。

これにはソース管理を使用しないでください。私の Mac では、過去に Microsoft の FolderShare を使用したことがありますが、これは非常にうまく機能します。ファイルを保存するたびに、2 ~ 3 秒以内に変更が同期されたすべてのマシンに反映されます。唯一の注意点は、クラウドがないため、両方の (または少なくとも 1 つの永続的な) マシンが同時にオンラインである必要があることです。FolderShare は巨大な MP3 ライブラリでは機能しませんが、コード ツリーではうまく機能します。

于 2010-02-20T18:52:14.293 に答える
2

Dropboxを試しましたか?基本的に、アプリケーションを実行している複数のPCにまたがるフォルダーをセットアップし、ファイルのバージョンを保存しますが、プログラミング環境で疲れたことはありません

于 2010-02-20T18:46:35.163 に答える
2

ギットを使用します。バージョン管理システムのすべての利点がありますが、ローカルで作業します。プロジェクト コードが既に SVN にある場合は、git-svn を使用して git と svn の両方を連携させることができます。これは git-svn by example のわかりやすいガイドです。

git を使用すると簡単に分岐できるため、頻繁に分岐する必要があります。Git ブランチは SVN ブランチとは異なります。これらはローカルに保存され、SVN のようにプロジェクト全体の単なるコピーではありません。最後に、両方のコンピューターで Dropbox をセットアップして、変更が自動的に同期されるようにします。

したがって、ワークフローは次のようになります。

  • git-svn clone http://mysvnrepo local_dirローカルリポジトリを取得するには
  • git checkout -b my_new_branch新しい機能に取り組みたいとき
  • 他の人のコードを壊すことを心配することなく、必要なだけ頻繁にコードをチェックインします
  • ローカルの変更は Dropbox のおかげで自動的に同期されます
  • コードの準備ができたら、マスター ブランチにマージします。git merge my_new_branch
  • 変更を subversion リポジトリにgit-svn rebaseコミットし、最初にローカル リポジトリを更新してから git-svn dcommit でコミットします。
于 2010-02-20T22:26:11.023 に答える
2

Mercurial (hg)または gitでは、バージョン管理サーバーは必要ありません。USB キー、メールごとに送信されるバンドル、または一時的に起動されたサーバー ("hg serve") を介して同期できます。この方法では、他の誰もバージョン管理サーバーを知ることはなく、チーム メンバーに干渉することもありません。hg と git の両方が subversion とやり取りできます (ただし、どれだけうまく機能するかはわかりません)。

于 2010-02-20T18:49:51.960 に答える
2

多くの人がこれを過度に複雑にしていると思います。解決策は明らかです。ポータブル USB デバイスを使用して、そこにチェックアウト ディレクトリを用意してください。あなたの与えられたシナリオでは、それは非常に理にかなっています。

于 2010-02-20T19:08:52.590 に答える
1

Fuseとsshfsを使用して、自宅のマシンの作業マシンに関連するディレクトリをマウントします。

于 2010-02-20T21:32:34.383 に答える
1

SVN にコミットする前に、コードが準拠していることを常に確認する必要があります。コミットする前に、更新を行い、必要なマージを実行する必要があります。私が知っている一部のチームでは、準拠できないコードをコミットすると罰金が科せられます。

于 2010-02-20T18:40:05.210 に答える
0

svnリポジトリでブランチを使用してみてください。または、MobileMeサブスクリプションをお持ちの場合は、iDiskを使用できます。

于 2010-02-20T18:39:05.507 に答える
0

他の開発者がコンパイルする必要があるコードに干渉したくない場合にも、従うべきいくつかの簡単な規則があります。

  • 自分だけが取り組んでコミットする独自のSVN ブランチを作成する
  • コードの一部を他の開発者と共有する準備ができたら (またはリリースの準備ができたら)、変更をメイン ブランチ (「トランク」) にマージします。
  • または、ブランチを使用したくない場合: コミットする前に、プログラムがコンパイルされ、単体テストが成功することを確認してください。そうすれば、他の人のコードとの衝突が少なくなります。
于 2010-02-20T18:40:26.393 に答える
0

Microsoft Live Mesh が気に入っています。使いやすく、同期するフォルダーを選択するだけで準備完了です。

于 2010-02-20T19:07:33.710 に答える
-2

機能する詐欺師のソリューション:

  1. 私の好み: 簡単な電子メール。フォルダを頻繁に .zip して、自分宛てに電子メールで送信するだけです。POP3 アカウントには「メールをサーバーに残す」も使用しているので、コンピューターが故障しても問題ありません。したがって、バックアップとバージョン管理を一緒に取得します。

  2. フラッシュドライブを使用してください。フラッシュドライブから作業してハードディスクにバックアップするか、その逆です。

上記の 2 つの方法は、複数のコンピューターを使用する 1 人の開発者にとって非常にうまく機能します。

編集:おっと、申し訳ありませんが、チームの側面を逃しました。電子メール ソリューションは引き続き機能しますが、チーム ソース管理を使用するのが最適です。複数のユーザーが同じコードをめちゃくちゃにするからです。TFSVisual Source Safeは完璧なソリューションとは言えません。ソース管理システムの問題は、それらを習得するための学習曲線です。残念ながら、チーム環境では、それは必要なタスクです。

于 2010-02-20T18:53:06.287 に答える