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

Re: Weird shallow-tree conversion state, and branches of shallow trees

From
Robin H. Johnson <robbat2@gentoo.org>
Date
Apr 15, 2007, 02:01 UTC
Message-ID
<20070415020139.GB2689@curie-int.orbis-terrarum.net>
In-Reply-To
<Pine.LNX.4.63.0704141655390.31807@qynat.qvtvafvgr.pbz>
On Sat, Apr 14, 2007 at 05:02:47PM -0700, David Lang wrote:
Show 8 quoted lines
> > - Shallow history checkouts are important to our low-bandwidth
> >  ebuild-tree developers (people in places with 33.6k modems, because
> >  the phone lines don't work well enough for 56k), or other high latency
> >  setups.
>  note that for people on low-bandwideth lines, makeing too shallow a checkout 
>  can actually end up costing more over time (they will have to pull full 
>  revisions since they don't have the earlier versions to just pull a diff 
>  against)

Yes, I'm aware that it may be more efficient over the long term for them to pull given blocks, and I'm going to recommend that developers have a full history anyway, but I suspect that they will still make heavy use of shallow trees, esp. as some do throwaway trees often. (This one is a moot point anyway, the shallow history support in Git is pretty much done baring the bugs I posted about previously).

Show 5 quoted lines
> > - Shallow tree (subtree) checkouts, for the developers that focus on
> >  specific portions of large modules and have no interest in the rest of
> >  the that tree. Eg. Releng does their work in gentoo/src/releng.
>  this could either be shallow tree or subproject, depending on how you end up 
>  orginizing things.

shallow tree, because we really do have people that check out arbitrary sub-divisions (the web translation teams come to mind, they just have checkouts of English and their own language), and going sub-project would be insane for that.

Show 7 quoted lines
> > - ACLs specific to subtree commits. Something similar to the cvs_acls.pl
> >  that FreeBSD uses would be great. Eg gentoo-x86/sec-policy/ is
> >  restricted to members of the security team (SELinux policies).
>  since git isn't designed with a single repository, it also doesn't need to 
>  worry about acl's (in fact, i don't think it has the concept of permissions 
>  at all). this is up to the people maintaining the 'master' repository to 
>  pull from the right people

I should have mentioned that we aren't following the kernel model here. All of the developers will have git+ssh access to the central tree, to push their own changes to it. On a similar tangent, in some subtrees (our documentation mainly) we have server-side validation tests before the commit is accepted. The 'update' hook documentation suggests that ACLs should be possible and implemented via that.

Show 12 quoted lines
> > - CVS Keyword-like behavior, to specifically place the path and revision
> >  of certain files into the file directly, for ease of tracking when the
> >  file is removed from it's original surrounding. I know this one is
> >  going to draw some flack, but it's a very common practice for a user
> >  to copy a file out of the CVS tree, make some modifications, and then
> >  post the entire changed version up, esp. when the size of the changes
> >  exceeds the size of diff.
>  I'm not understanding why you need this. git tracks the file content, not 
>  the diffs betwen files. a developer does their work and git figures out when 
>  you do a pull if it's better to send the file or a diff (and if you are 
>  sending a diff, what you are doing the diff against, it may not be the file 
>  that had that name before)

The tree that goes out to users is NOT git or CVS. What you point to here is impossible unless we forced all of the users to migrate to git (a truly herculean task if there was ever one). It's a tarball or an rsync of an automatically managed CVS checkout. (Tarballs go onto the release media, and are also widely used by those that sneaker-net their trees to machines for security reasons). Alternatively, the users browse the viewcvs, and pull something from the Attic. Regardless of where they get the file from, the problem is that the file doesn't contain any markers to help the developers merge it back again.

A frequent occurrence of this is where the user takes rev X of a file (because it was the latest one at the time), makes a local (non version-controlled) copy, and submits it back our Bugzilla some months down the line. Thanks to the $Header$ in the file he submits, we can produce a diff against the original revision, and figure out how best to merge it with the latest revision.

-- 
Robin Hugh Johnson
Gentoo Linux Developer & Council Member
E-Mail     : robbat2@gentoo.org
GnuPG FP   : 11AC BA4F 4778 E3F6 E4ED  F38E B27B 944E 3488 4E85
Previous: David LangNext: Shawn O. Pearce
Message 5 of 34 in “Weird shallow-tree conversion state, and branches of shallow trees”
  1. Robin H. JohnsonApr 12, 2007
  2. Johannes SchindelinApr 14, 2007
  3. Robin H. JohnsonApr 15, 2007
  4. David LangApr 15, 2007
  5. Robin H. JohnsonApr 15, 2007
  6. Shawn O. PearceApr 15, 2007
  7. Nguyen Thai Ngoc DuyApr 15, 2007
  8. Jakub NarebskiApr 15, 2007
  9. Linus TorvaldsApr 15, 2007
  10. Andy ParkinsApr 15, 2007
  11. Linus TorvaldsApr 15, 2007
  12. Bill LearApr 16, 2007
  13. Andy ParkinsApr 16, 2007
  14. Julian PhillipsApr 16, 2007
  15. Robin H. JohnsonApr 16, 2007
  16. Theodore TsoApr 16, 2007
  17. Nguyen Thai Ngoc DuyApr 16, 2007
  18. Linus TorvaldsApr 16, 2007
  19. Nguyen Thai Ngoc DuyApr 16, 2007
  20. Robin H. JohnsonApr 16, 2007
  21. Linus TorvaldsApr 16, 2007
  22. Daniel BarkalowApr 17, 2007
  23. Linus TorvaldsApr 16, 2007
  24. Andy ParkinsApr 16, 2007
  25. Sven VerdoolaegeApr 16, 2007
  26. Linus TorvaldsApr 16, 2007
  27. David LangApr 16, 2007
  28. David LangApr 17, 2007
  29. Andy ParkinsApr 17, 2007
  30. Junio C HamanoApr 16, 2007
  31. Andy ParkinsApr 16, 2007
  32. Junio C HamanoApr 17, 2007
  33. Andy ParkinsApr 17, 2007
  34. Robin H. JohnsonApr 15, 2007

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.