Hacker News new | past | comments | ask | show | jobs | submit login

Wow...just wow. Why would you do this to yourselves?

First of all,

    git push origin origin:refs/heads/${branch_name}
is totally unnecessary when creating a new branch.

I see that there are remote branches you want to track. It's simple, no need for a script. Just make sure you are synced with the current version of the repo you are using (using `git pull`). Then:

    git checkout --track -b bugfix origin/bugfix
Easy as pie. I even have an alias set when I want to do this, so I just call

    git cot bugfix origin/bugfix
To create a new branch locally (that doesn't track a remote), just call

    git checkout -b new-feature
Note: When using `git pull`, `git fetch` doesn't need to be called. Pulling changes will fetch them for you automatically.



That's not simple. Simple would be doing what everyone wants it to do with one command that's really easy to remember/discover.


> Simple would be doing what everyone wants it to do with one command

Everyone comes to the plate with different experiences/expectations. You can't hope to satisfy everyone.


how could it be simpler?


  hg branch new-feature
If you want it to branch from a different changeset than the one you're on, then:

  hg update deadbeef
  hg branch new-feature
No flags, no orgin/newfeature (what does that even mean?), just the commands describing exactly what you're doing.


# this creates the branch and switches to it (i.e. does a checkout)

git checkout -b new-feature

The only diff is -b, which is fine to me because it makes it clear that you are doing two things. You don't need the origin/newfeature stuff for the common case. I'm assuming this is what 'hg branch new-feature' is doing. How do you create a branch and not switch to it?


> How do you create a branch and not switch to it?

  hg branch new-feature
  hg update default
But why would you not want to switch to a branch you just created? Why create the branch if you're not going to work on it?


Actually that won't create a new branch.

'hg branch foo' just marks the working directory as branch foo. The 'hg update default' would then update back to the default branch and mark the working directory as being on 'default'.

To really just create a new branch you do: 'hg branch foo; hg commit -m "Create a new branch."' Two steps, but like you said, it's probably not something you'd be doing very often anyway.


I don't presume to know what is necessary by everyone's situation. If the argument is that mercurial is better because you don't have to use -b, well that's weak sauce.


I actually use git, myself, but it's not just the -b; there's all kind of stuff like that in git's "user interface". It gets annoying at times.


Also, while it makes it 'a bit annoying' for people like me, I wonder if it will rule git out when it comes to Big Companies and people who are not so computer literate. The last time I looked at the git/windows thing, it was pretty ugly and not nearly as easy to use as turtlesvn.


i'm at a big company that everyone has heard of, and we use git.


Without more information, I can't really say if you're contradicting me thesis or not. I can easily imagine a small group of git users in any big company, but not so much a larger group that includes a lot of less technical users.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: