Re: Newbie grief

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 3, 2012 at 8:58 PM, Rich Pixley <rich.pixley@xxxxxxxx> wrote:
> On 5/1/12 16:30 , Felipe Contreras wrote:
>>
>> Show all the hg commands of what you are trying to do, and we can show
>> you how you can achieve the same in git, but much more easily.
>
> hg init foo
> for i in `yes | head -4000`; do (set -x ; d=`date +%s.%N` ; hg clone foo
> foo-$d; (cd foo-$d && date > bar && hg add bar && hg ci -m $d)); done
> for i in foo-*; do (set -x ; (cd $i && hg push -f)); done

Well, that's your problem right there; you are doing something totally stupid.

Even the mercurial documentation tells you so:

---
By default, push will not allow creation of new heads at the
destination, since multiple heads would make it unclear which head to
use. In this situation, it is recommended to pull and merge before
pushing.
---

The git way (which happens to be the mercurial way too), is to fetch
and merge (pull) before pushing:

do_commit() { (cd $1 && date +%N > bar && git add bar && git commit -m "$2") ;}
git init foo; do_commit foo "Initial commit"
for i in $(seq 1 10); do git clone foo foo-$i; do_commit foo-$i $i; done
for i in foo-*; do (set -x; (cd $i && git pull -s ours --no-edit; git
push)); done

Do you seriously think it makes sense to have 4000 people doing
independent development on 4000 different lines of development all
ignoring each other? Which of the 4000 heads would you pick to test
this "branch"? Who is going to do the merge of these 4000 heads?

This is a recipe for disaster.

You prefer a DVCS that allows you to do stupid stuff, well that's your
choice, but don't blame git for making it difficult for you to do
stupid stuff. You should stop doing that and follow the git/mercurial
way; fetch/pull, merge, and push.

Cheers.

-- 
Felipe Contreras
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]