Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] git feedback

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Jeremy Blosser <jblosser-smgl AT firinn.org>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] git feedback
  • Date: Thu, 27 Jul 2006 17:10:28 -0500

On Jul 22, Jeremy Blosser [jblosser-smgl AT firinn.org] wrote:
> On Jul 22, Ladislav Hagara [ladislav.hagara AT unob.cz] wrote:
> > I am trying to "integrate" some security fixes from test to stable-rc
> > and stable several days already (when I have time and I remember it) and
> > still I have only problems and always end my suffering by "git reset
> > --hard". I am really missing someting like "p4 integrate devel/xyz/...
> > test/xyz/...", "p4 client", .... Yea, it can be only my problem.
>
> Tell us which specific fixes you're trying to integrate and we can give you
> the syntax you need. Then once we all understand how it works we can talk
> about if/how it needs to be improved.

There are some comments today in bug 12919 that are related to this, I'm
going to quote them back into this thread so we can talk about it here:

On Jul 27, bugzilla-daemon AT bugs.sourcemage.org
[bugzilla-daemon AT bugs.sourcemage.org] wrote:
> http://bugs.sourcemage.org/show_bug.cgi?id=12919
>
> ------- Additional Comments From hgr AT vabo.cz 2006-07-27 09:11 -------
> OK, I just forgot it. In Bug 12918 I provided it.
>
> I really dislike git. Git's integration is really horrible and I have spent
> already several hours trying and learning it and always I only end my
> attempt
> with "git reset --hard".
>
> Again:
> $ git status
> # On branch refs/heads/stable-rc-0.5
> nothing to commit
>
> $ git diff master stable-rc-0.5 ChangeLog
>
> $ git diff
>
> $ git cherry-pick 5bf952f8b5994dc188be730ca890fbb509aa89bf
> First trying simple merge strategy to cherry-pick.
> Simple cherry-pick fails; trying Automatic cherry-pick.
> Auto-merging ChangeLog
> merge: warning: conflicts during merge
> ERROR: Merge conflict in ChangeLog
> fatal: merge program failed
> Automatic cherry-pick failed. After resolving the conflicts,
> mark the corrected paths with 'git-update-index <paths>'
> and commit with 'git commit -F .msg'
> You may choose to use the following when making
> the commit:
> GIT_AUTHOR_NAME='Ladislav Hagara'
> GIT_AUTHOR_EMAIL='ladislav.hagara AT unob.cz'
> GIT_AUTHOR_DATE='1153316084 +0200'
>
>
> Is it really necessary to fix it manually (vi Changelog and remove cca 150
> lines) ? In p4 it was much easier.

P4 does use a smarter merge strategy when dealing with changelog-type
files. We saw this on other SCMs as well that also required manual
intervention on the changelogs.

The thing is, though, that git is just using /usr/bin/merge (whatever that
may be) for the "simple" cherry-pick merge case. rcs' /usr/bin/merge is
the thing that is stupid WRT changelog-style merging. The problem isn't
inherently git -- which is just following a unix philosophy of using
existing tools for the job -- the problem is we need to get it using
something smarter for this merge case. This is the git devs' answer to
this question (from Linus on down, we discussed this specifically with
him), and it's a reasonable answer. Arwed's already done a proof of
concept script that does the changelog merge fine, probably he just needs
to get in a final state and make it available. Arwed, comments?

Is this the main thing you're talking about when you say "git's integration
is really horrible", or is there more to it? I have a hard time seeing how
'git cherry-pick <commit-id>' is difficult or worse than
'p4 integ {test,stable/0.5}/some/path/...' but I can't guess what specific
issues you're having unless you describe them. Yes, some of the default
merge strategies don't fit immediately. The good news is git's merging is
as modular as any other unix tool so we can pretty easily resolve that once
we identify it.

> ------- Additional Comment #6 From Seth Woolley 2006-07-27 16:32 -------
>
> Yes, for changelogs, git's merges don't work. I'd almost prefer to have
> HISTORY be a git commit that took the commit info and auto-generated the
> HISTORY.

It's been suggested before, and it's certainly doable, but the typical
response is that our HISTORY files are a different use case than the info
we want in the raw SCM changelog. That we keep history different places in
different forms is intended as a feature. Arwed can speak to that more if
he wants...

Attachment: pgpVqy0cZad6a.pgp
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page