Boost logo

Boost :

Subject: Re: [boost] [git] neglected aspects
From: Steven Samuel Cole (steven.samuel.cole_at_[hidden])
Date: 2012-02-09 09:16:35

Thomas Heller wrote:
> svn update is all you need. ever.
> ...
> you won't look back to git, and enjoy "svn up" and "svn commit"

these statements give me the impression you have actually not yet walked
in the shoes of a branch maintainer / integrator; i don't see how you
would do that without at least 'svn merge'. as such, i'm not sure if you
have experienced the problems of merging / integrating a development
line first hand and can appreciate the conceptual advantages git has to
offer in that area.

Thomas Heller wrote:
> There are conflicts from time to time.

are you talking about conflicts you get after an svn up ??
those are certainly not the reason why DCVSs exist - but git helps with
that, too ;-)

Thomas Heller wrote:
> Man up resolve them.

i don't know the details of how things are run in boost, but in my
experience, the job of an integrator is the one with the worst
responsibility to appreciation ratio in a software project:
if they screw up, everyone will notice due to the bad release;
if they deliver 100%, they rarely ever get the praise they deserve.

i've seen companies where developers who have fallen from favor with
management were forced onto the integration chair until they either
resign or go mad. telling them to man up without having been down that
road in a high profile commercial or large, popular open source project
is... not something they will like to hear. of course you can not know
this, but the mere memory of this situation still makes me twitch. i do
hope that doesn't show in my tone, my apologies if it does.

Thomas Heller wrote:
> The git userinterface is just a pain,
> i regularly get confused and have no idea what to do.
> ...
> I regularly mess up my local repository.

I find myself doing a lot of 'git status' in a version-controlled folder
which gives me info like

host:folder user$ git status
# On branch some_feature_branch
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working
# modified: main.cpp


host:folder user$ git status
# On branch some_feature_branch
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# modified: main.cpp

one single command and the tool tells you what you could do next.
how much simpler and more user-friendly could it possibly be ?

Thomas Heller wrote:
> Right, and there are plethora of ways to mess up local copies with
> git. While it might be possible to get back in a sane state it is
> extremely hard.

what it 'extremely hard' about 'git reset --hard' ? (no pun intended).

host:folder user$ git status
# On branch some_feature_branch
nothing to commit (working directory clean)

btw: i've come across today, maybe that helps to get
past the initial learning curve.

# ssc

Boost list run by bdawes at, gregod at, cpdaniel at, john at