Mercurialのマージとか
BitBucketを使ってCourseraの作業を進めているのですが、マージとかよくわからなかったので色々と試してみた。
- test_repというのをBitBucketにつくり
- rep1/test_rep というのと、rep2/test_repをつくった
- rep1/test_rep/test1/hogehoge というテキストファイルを作ってcommit
- rep2/test_rep/.hgignore を作ってcommit
- rep2/test_rep からpush
- rep1/test_rep からpush --> 「repositry is unrelated」というエラーがでてpushできない
- rep1/tesr_rep にpull --> 「repositry is unrelated」というエラーがでてpullできない
ここではまりましたが、以下のサイトを参照して
http://mercurial.808500.n3.nabble.com/Unable-to-push-td2134088.html
- rep1/test_rep に、pull -f
- rep1/test_rep で merge、そしてpush -f
いちおう両方共リモートレポジトリとやり取りできるようになったが、なんか色々変な感じになってしまった。無駄にrep1とrep2にて何回もpush/pull/commit/merge/updateして、よくわからないうちに同期がとれた。
しかしながら、一連の作業にて一つ学んだものがあります。
rep1とrep2で別々に違うものを編集した場合は、
- rep1 から commit -> push
- rep2 にて、pull -> merge -> commit -> push
- rep1 にて、pull -> update
すると、rep1とrep2が同期取れる。
何かを編集したりするまえにpullしとくといいよ、ということだとわかった気がしました。ネットワークにつながらない場所で作業をcommitした場合は、どっかでpushするまえに、pullしてmergeしましょうね、ということかな?
(2013/4/11 カテゴリー hg を削除)