2012-03-21 14 views
2

シングルユーザーワークフローでMercurialを使用して、コーディングや書込みがひどく間違っている場合(主にStataとRの統計パッケージとLaTeXを使用する)、変更をロールバックするオプションがあります。現地でしか作業していないのに、私が持っているのはメインのレポだから簡単です。単一のユーザーMercurialワークフローでリポジトリで作業できますか?

最近、私はより多くの計算能力のためにLinuxサーバーに参加し始めました。これまでは手動でファイルを手動でコピーしていましたが、Mercurialはローカルでしか使用していませんでしたが、私はMercurialを使ってこれを処理し、これらの2つのワークフローを同期させていきたいと思います。また、私はローカル(ラップトップまたはデスクトップ上)とサーバー上の両方でコード化することができます。

メインリポジトリのクローンをサーバ上で処理し、メインリポジトリを変更しないでください。または、私がサーバーにいるときにメインのレポで直接作業することはできますか? this questionの@gizmoはthis workflow guideを指します。 「シングルデベロッパー」ディスカッションは参考になりますが、私がまだ理解していない大きな問題を引き起こすことなくサーバーにいる間にメインリポジトリで作業できることはまだ分かりません。

ありがとうございます!

編集:私はJoel SpolskyのHgInit.comチュートリアルで作業したことを付け加えてください。sshを使ってプッシュ/プル/クローン/ etcをするのは快適ですが、私はまだメインリポジトリで作業することはできません後で心配を引き起こす。それとももっと哲学的な質問でしょうか?ありがとう!

答えて

4
  • MercurialはDVCSで、それは意味 - にそれぞれの場所をあなたは両方を持っている: - あなたが自由に交換することができ、ローカルの作業コピーとローカルリポジトリ
  • MercurialはDVCSで、それは意味|レポ間(プッシュプル)のデータを(の場合はリモートアクセス方法を提供します)。 SSH

    オーバー

あなた

快適な押し/引き/クローニング/などの場合は、プルを行うことを忘れないでください|プッシュサイクル自宅であなたの仕事の周りに( home-hostでhg serveを実行せず、ソースとしてサーバーから同期するために)、各場所で完璧な線形集約履歴を得ることはありません。また、レポを時々同期させることを忘れたとしても、最悪の場合は2つのヘッドで後で簡単にマージできます(StataとRデータファイルの形式はわかりませんが、LaTeXはテキストとしてマージ可能です)

+0

よろしくお願い致します。あなたの答えを読んで、私が主なレポで働くことに躊躇したことは、例ではメインのレポを決めることが決してなかったということでした。しかし、 'hg push 'がすべての差分を与え、誰もメインリポジトリを操作していないので、更新されたファイルを生成する必要はありません。ありがとう! –

2

サーバー上のリポジトリで直接作業する場合は問題ありません。 Mercurialの観点から見ると、「メイン」リポジトリはただの別のランダムなリポジトリであり、Mercurialは特別なものとは考えていません。

あなたはこれを直接言うわけではありませんが、人々が尋ねることの1つは「サーバーにプッシュするとどうなりますか?」ということです。答えは、hg pushリポジトリ.hg/フォルダ)にデータを送信するだけです。あなたがそれを押すと、作業コピーはサーバー上で触られません。新しいチェンジセットをサーバーにプッシュするので、次回サーバーを操作するときにhg updateを実行する必要があります。これはサーバー上でhg pullを実行した場合と同様です。そこにもマージまたは更新されます。

私はいつもこのような状況に陥っています。私は自宅でリポジトリを作成し、職場のコンピュータにコピーします。どちらの場所でもファイルを変更し、2つのリポジトリ間でプッシュ/プルします。他の人と仕事を共有する必要がある場合は、Bitbucketにリポジトリを作成し、コードをそこにプッシュします。そうすれば、Bitbucketはコードの正式なリポジトリとして機能し、家庭や職場のリポジトリでBitbucketへのデフォルトパスを変更するのが普通です。だから、家で私が持っているでしょう:

[paths] 
default = httsp://bitbucket.org/mg/<repo>/ 
work = ssh://[email protected]/<repo> 

私が仕事から直接物事をつかむためのBitbucketとhg pull workに物事を送信するためにhg pushを行うことができますように(場合には、私が出る前のBitbucketにプッシュするのを忘れました)。

+0

ありがとう! 3番目のパラグラフとコードブロックは本当に役に立ちます。私は "メイン"レポの私の考えは少しオフだと思う。 「メイン」は本当に選択肢から離れています。 –

+1

@richardh:正確には、 "メイン"リポジトリを持つことはちょうど* convention *です。 –

関連する問題