git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: missing git features (was: Re: Errors GITtifying GCC and Binutils)

From
Andreas Ericsson <ae@op5.se>
Date
Mar 24, 2006, 12:59 UTC
Message-ID
<4423ED16.9080504@op5.se>
In-Reply-To
<20060324123238.GA3070@linux-mips.org>
Ralf Baechle wrote:
Show 15 quoted lines
> 
> For my various hacking projects and archiving needs git has done me alot
> of good and it's pretty close to the answer to the question for life,
> universe and everything.  But a few rough areas (I'm currently using git
> 1.2.4 btw.)  remain:
> 
>  o During the debugging phase before a new kernel release I put anything
>    that isn't appropriate for the master branch on a queue branch which
>    I am rebasing frequently to ensure things will work right in the
>    "patch bombing" phase before the next -rc1 when I'm sending everything
>    on the queue branch upstream.
>    The problem: users pull such a branch, create their own branch starting
>    somewhere on my queue branch.  So eventually when they pull again
>    after I rebased the branch things blow up spectactularly.  This needs a
>    simple solution.

See how Junio does with next and pu and recommend your users to do the same. There's no way of pulling a rebased branch, because the rebasing destroys ancestry information, meaning the original commits other people have cease to exist in your repository.

>  o git rebase had no reasonable handling of conflicts last I ran into a
>    rebase conflict.

"git rerere" might be of service here. Other than that, it's merging that goes, unless we come up with a way of patching the delta on the fly when such things are encountered. Unfortunately that is beyond me, but perhaps there are other takers on the list. It would indeed be very nice to have.

>  o If a file is modified in a user's tree and a non-conflicting patch is
>    being pull users seem to expect the old CVS behaviour which is trying
>    to merge into the checked out tree, worst case adding conflict markers.
>    Git just refuses the operation.

A pull (fetch + merge) requires a pristine index. If the user has done "git update-index" on the files, but not committed the merge *should* fail every time. If they have changes in the working tree but not in the index, the fetch should work, but the final phase (checking out the updated head) should fail, since the working tree has un-committed changes.

>  o I had people piling up over 2GB in their $GIT_DIR/objects/pack/
>    directory because they were using the rsync method for updating.

This most likely happens because you're doing too large packs. You can do incremental packing, or ask users to switch to using the git:// protocol, which is much faster for incremental updates.

Show 5 quoted lines
>  o Git is a dramatically more powerful and for most operations better
>    performing SCM than CVS - but CVS is what people know, it's easy to
>    learn and handling special cases like conflicts is sort of obvious
>    because CVS expects the user to cleanup the mess and does not try to
>    compete with the users in that.

git doesn't compete with the user either, but it doesn't touch the working tree unless the merge succeeds, which is sane imo but surprising for CVS users where the action is done in the working tree and the result is put under rcs control.

>  o A Git for Dummies book would be helpful.
The tutorial is fairly complete.
http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
Show 9 quoted lines
>  o When users have problems with git I found it useful to explain them
>    how git internally works so they get a better understanding of what
>    actually is going on.  Dominic Sweetman which is an excellent
>    technical writer has made a similar experience and started writing
>    a bit about git in the wiki at http://www.linux-mips.org/wiki/WhatIsGit
>    May somebody wants to extend this?
>    (Dominic unfortunately is currently deeply burried in writing the
>    2nd issue of See MIPS Run, so can't really contribute ...)
> 

Good to know. Unfortunately I don't know git internals half as well as I would like. I can sometimes answer questions, but starting from scratch and explain it is beyond me.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Previous: Ralf BaechleNext: Carl Worth
Message 28 of 43 in “Errors GITtifying GCC and Binutils”
  1. Jan-Benedict GlawMar 22, 2006
  2. Linus TorvaldsMar 22, 2006
  3. Linus TorvaldsMar 23, 2006
  4. Linus TorvaldsMar 23, 2006
  5. Jan-Benedict GlawMar 23, 2006
  6. Linus TorvaldsMar 23, 2006
  7. Chris ShoemakerMar 24, 2006
  8. Keith PackardMar 24, 2006
  9. Jan-Benedict GlawMar 24, 2006
  10. Chris ShoemakerMar 25, 2006
  11. H. Peter AnvinMar 23, 2006
  12. Keith PackardMar 23, 2006
  13. Linus TorvaldsMar 23, 2006
  14. seanMar 23, 2006
  15. Linus TorvaldsMar 23, 2006
  16. Shawn PearceMar 23, 2006
  17. Ryan AndersonMar 23, 2006
  18. Junio C HamanoMar 24, 2006
  19. Junio C HamanoMar 23, 2006
  20. Johannes SchindelinMar 24, 2006
  21. Mark WoodingMar 24, 2006
  22. Andreas EricssonMar 24, 2006
  23. David S. MillerMar 23, 2006
  24. Linus TorvaldsMar 23, 2006
  25. Timo HirvonenMar 23, 2006
  26. seanMar 23, 2006
  27. Ralf BaechleMar 24, 2006
  28. Andreas EricssonMar 24, 2006
  29. Carl WorthMar 24, 2006
  30. Andreas EricssonMar 24, 2006
  31. Ryan AndersonMar 23, 2006
  32. Linus TorvaldsMar 23, 2006
  33. Junio C HamanoMar 23, 2006
  34. Ryan AndersonMar 24, 2006
  35. Junio C HamanoMar 24, 2006
  36. Ralf BaechleMar 24, 2006
  37. Jan-Benedict GlawMar 24, 2006
  38. Andreas EricssonMar 24, 2006
  39. Jan-Benedict GlawMar 25, 2006
  40. Santi BéjarMar 24, 2006
  41. Eric WongMar 25, 2006
  42. contrib/git-svn: stabilize memory usage for big fetchesEric Wong, Mar 26, 2006
  43. James CloosMar 25, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.