{"thread":{"id":"7652","subject":"GIT and the current -stable","startedAt":"2007-04-14T05:36:02Z","lastAt":"2007-04-15T00:23:56Z","messageCount":16,"participants":["Rene Herman","Junio C Hamano","Greg KH","Chris Wright","Uwe Kleine-König","Brian Gernhardt","Linus Torvalds","Gerb Stralko","Julian Phillips"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"39321","messageId":"46206842.80203@gmail.com","threadId":"7652","inReplyTo":null,"subject":"GIT and the current -stable","fromName":"Rene Herman","fromEmail":"rene.herman@gmail.com","sentAt":"2007-04-14T05:36:02Z","receivedAt":"2007-04-14T05:36:02Z","isPatch":false,"sender":{"key":"rene.herman@gmail.com","avatar":null},"body":"Good day.\n\nStumbling around with git here. I'd like to use git to efficiently track the \n  current -stable as well as -current. Say, my local tree is a clone of \nLinus current:\n\ngit clone \\ \ngit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git local\n\nI then branch off a 2.6.20 branch:\n\ncd local\ngit checkout -b v2.6.20 v2.6.20\n\nto now update to the current -stable I could do:\n\ngit pull \\ \ngit://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.20.y.git\n\neach time that a new -stable is released. Rather though, I'd like a simple \n\"git pull\" to do this while on this branch while a \"git pull\" while back on \nthe master branch pulls from the originally cloned Linus repo again.\n\nIs this possible? Do I want it to be? Comments like \"work like this instead\" \nwelcome as well; figuring out what the heck it is that I want from git seems \nto be one of the most difficult questions to answer...\n\nCurrently using git 1.5.0.4.\n\nRene.\n"},{"id":"39322","messageId":"7vfy73bhik.fsf@assigned-by-dhcp.cox.net","threadId":"7652","inReplyTo":"46206842.80203@gmail.com","subject":"Re: GIT and the current -stable","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2007-04-14T06:24:19Z","receivedAt":"2007-04-14T06:24:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Rene Herman <rene.herman@gmail.com> writes:\n\n> Stumbling around with git here. I'd like to use git to efficiently\n> track the current -stable as well as -current. Say, my local tree is a\n> clone of Linus current:\n>\n> git clone \\\n> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n> local\n>\n> I then branch off a 2.6.20 branch:\n>\n> cd local\n> git checkout -b v2.6.20 v2.6.20\n>\n> to now update to the current -stable I could do:\n>\n> git pull \\\n> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.20.y.git\n\nI think adding these lines to .git/config would do the trick,\nafter you have done the \"checkout -b v2.6.20 v2.6.20\" step:\n\n[branch \"v2.6.20\"]\n\tremote = stable\n\tmerge = refs/heads/master\n[remote \"stable\"]\n\turl = git://git.kernel.org/.../stable/linux-2.6.20.y.git\n\tfetch = refs/heads/master\n\nprovided if stable team forks v2.6.20.y history off of Linus's\nv2.6.20.\n\nWith the above configuration, anytime you say \"git pull\" while\non your v2.6.20 branch will fetch from \"stable\" and merge their\n'master' branch in your current branch (i.e. v2.6.20 branch).\n"},{"id":"39324","messageId":"46207F1D.3010302@gmail.com","threadId":"7652","inReplyTo":"7vfy73bhik.fsf@assigned-by-dhcp.cox.net","subject":"Re: GIT and the current -stable","fromName":"Rene Herman","fromEmail":"rene.herman@gmail.com","sentAt":"2007-04-14T07:13:33Z","receivedAt":"2007-04-14T07:13:33Z","isPatch":false,"sender":{"key":"rene.herman@gmail.com","avatar":null},"body":"On 04/14/2007 08:24 AM, Junio C Hamano wrote:\n\n> I think adding these lines to .git/config would do the trick,\n> after you have done the \"checkout -b v2.6.20 v2.6.20\" step:\n> \n> [branch \"v2.6.20\"]\n> \tremote = stable\n> \tmerge = refs/heads/master\n> [remote \"stable\"]\n> \turl = git://git.kernel.org/.../stable/linux-2.6.20.y.git\n> \tfetch = refs/heads/master\n> \n> provided if stable team forks v2.6.20.y history off of Linus's\n> v2.6.20.\n> \n> With the above configuration, anytime you say \"git pull\" while\n> on your v2.6.20 branch will fetch from \"stable\" and merge their\n> 'master' branch in your current branch (i.e. v2.6.20 branch).\n\nYes, this does seem to work, thanks. Was thrown of a bit by having named the \nbranch \"v2.6.20\". GIT and I disagree what it is that I want to happen when I \nsay \"git checkout v2.6.20\" if v2.6.20 is also a tag on master.\n\nThe pull behaviour does not follow further branches:\n\nrene@7ixe4:~/src/linux/local$ git branch\n* 2.6.20\n   master\nrene@7ixe4:~/src/linux/local$ git checkout -b 7ixe4\nSwitched to a new branch \"7ixe4\"\nrene@7ixe4:~/src/linux/local$ git pull\nWarning: No merge candidate found because value of config option\n          \"branch.7ixe4.merge\" does not match any remote branch fetched.\nNo changes.\n\nThis might in practice not be all bad in fact, and I suppose I understand \nhow to \"fix\" it along the same lines as above.\n\nBut as happens very frequently with GIT, I get the feeling that I just don't \nunderstand how it's all intended to be used. It seems that what I wanted \nabove is not standard? What would be expected use of the stable GIT repo? \nJust cloning that outright into another repo?\n\nA \"GIT WHYTO\" from someone with the oversight would be very useful...\n\nRene.\n"},{"id":"39325","messageId":"20070414072106.GA6344@kroah.com","threadId":"7652","inReplyTo":"7vfy73bhik.fsf@assigned-by-dhcp.cox.net","subject":"Re: GIT and the current -stable","fromName":"Greg KH","fromEmail":"greg@kroah.com","sentAt":"2007-04-14T07:21:06Z","receivedAt":"2007-04-14T07:21:06Z","isPatch":false,"sender":{"key":"greg@kroah.com","avatar":"https://gravatar.com/avatar/5bb5aa0cc2e01c00ec899d11130c07796bc186e465bae57bc34873b13b72c7c8?d=mp&s=160"},"body":"On Fri, Apr 13, 2007 at 11:24:19PM -0700, Junio C Hamano wrote:\n> Rene Herman <rene.herman@gmail.com> writes:\n> \n> > Stumbling around with git here. I'd like to use git to efficiently\n> > track the current -stable as well as -current. Say, my local tree is a\n> > clone of Linus current:\n> >\n> > git clone \\\n> > git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git\n> > local\n> >\n> > I then branch off a 2.6.20 branch:\n> >\n> > cd local\n> > git checkout -b v2.6.20 v2.6.20\n> >\n> > to now update to the current -stable I could do:\n> >\n> > git pull \\\n> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.20.y.git\n> \n> I think adding these lines to .git/config would do the trick,\n> after you have done the \"checkout -b v2.6.20 v2.6.20\" step:\n> \n> [branch \"v2.6.20\"]\n> \tremote = stable\n> \tmerge = refs/heads/master\n> [remote \"stable\"]\n> \turl = git://git.kernel.org/.../stable/linux-2.6.20.y.git\n> \tfetch = refs/heads/master\n> \n> provided if stable team forks v2.6.20.y history off of Linus's\n> v2.6.20.\n\nYes, we do branch off Linus's tree for each of the different .y\nreleases.\n\nSome people have asked us to keep all of the different .y branches in\nthe same git tree, but for now we have been using different repositories\non kernel.org to keep things simpler for the majority of people who do\nnot fully understand how to use the branching features of git (myself\nincluded in that category at times, I've messed up merging to different\nbranches too many times...)\n\n> With the above configuration, anytime you say \"git pull\" while\n> on your v2.6.20 branch will fetch from \"stable\" and merge their\n> 'master' branch in your current branch (i.e. v2.6.20 branch).\n\nThat's really cool, thanks for pointing out how to do it.\n\nthanks,\n\ngreg k-h\n"},{"id":"39326","messageId":"20070414083410.GU6602@sequoia.sous-sol.org","threadId":"7652","inReplyTo":"46206842.80203@gmail.com","subject":"Re: GIT and the current -stable","fromName":"Chris Wright","fromEmail":"chrisw@sous-sol.org","sentAt":"2007-04-14T08:34:10Z","receivedAt":"2007-04-14T08:34:10Z","isPatch":false,"sender":{"key":"chrisw@sous-sol.org","avatar":null},"body":"* Rene Herman (rene.herman@gmail.com) wrote:\n> Stumbling around with git here. I'd like to use git to efficiently track \n> the current -stable as well as -current. Say, my local tree is a clone of \n> Linus current:\n> \n> git clone \\ \n> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git local\n> \n> I then branch off a 2.6.20 branch:\n> \n> cd local\n> git checkout -b v2.6.20 v2.6.20\n> \n> to now update to the current -stable I could do:\n> \n> git pull \\ \n> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.20.y.git\n\nI've already put a tree like this up on kernel.org.  The master branch\nis Linus' tree, and there's branches for each of the stable releases\ncalled linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n\nhttp://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=summary\n\n> each time that a new -stable is released. Rather though, I'd like a simple \n> \"git pull\" to do this while on this branch while a \"git pull\" while back on \n> the master branch pulls from the originally cloned Linus repo again.\n\nYou have to be careful with pull.  It will always want to merge onto your\ncurrent branch.\n\nthanks,\n-chris\n"},{"id":"39327","messageId":"462096AA.3080003@gmail.com","threadId":"7652","inReplyTo":"20070414083410.GU6602@sequoia.sous-sol.org","subject":"Re: GIT and the current -stable","fromName":"Rene Herman","fromEmail":"rene.herman@gmail.com","sentAt":"2007-04-14T08:54:02Z","receivedAt":"2007-04-14T08:54:02Z","isPatch":false,"sender":{"key":"rene.herman@gmail.com","avatar":null},"body":"On 04/14/2007 10:34 AM, Chris Wright wrote:\n\n> I've already put a tree like this up on kernel.org.  The master branch\n> is Linus' tree, and there's branches for each of the stable releases\n> called linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n> \n> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=summary\n\nI see, thank you; that sounds like a good \"master\" repo to clone then.\n\nRene.\n"},{"id":"39336","messageId":"20070414115600.GA10995@informatik.uni-freiburg.de","threadId":"7652","inReplyTo":"46206842.80203@gmail.com","subject":"Re: GIT and the current -stable","fromName":"Uwe Kleine-König","fromEmail":"ukleinek@informatik.uni-freiburg.de","sentAt":"2007-04-14T11:56:00Z","receivedAt":"2007-04-14T11:56:00Z","isPatch":false,"sender":{"key":"u.kleine-koenig@pengutronix.de","avatar":"https://gravatar.com/avatar/354b5e3ceb2806a2f1e1e382ac29ddbdad18288654da62b61eb13583a857eee7?d=mp&s=160"},"body":"Hello Rene,\n\nRene Herman wrote:\n> each time that a new -stable is released. Rather though, I'd like a simple \n> \"git pull\" to do this while on this branch while a \"git pull\" while back on \n> the master branch pulls from the originally cloned Linus repo again.\n> \n> Is this possible? Do I want it to be? Comments like \"work like this \n> instead\" welcome as well; figuring out what the heck it is that I want from \n> git seems to be one of the most difficult questions to answer...\nChris' mail made that somehow superfluous but anyhow.  I have a Python\nscript to update my Linux tree.  It's attached.\n\nIt automatically adds\ngit://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.x.y as a\nremote as soon as v2.6.x is seen in Linus' repo and then fetches 2.6.16,\n2.6.(last - 1) and 2.6.last.  If you want to fetch all, change \n\n\tfor stable in (16, last_stable - 1, last_stable):\n\nin\n\n\tfor stable in xrange(16, last_stable + 1):\n\nThe location of the repo is hardcoded to $HOME/gsrc/linux-2.6, but I\nthink everyone with a bit of intuition should be able to change that ...\n\nSo it's not a \"git pull\" for me, but \"update-linux\".\n\nBest regards\nUwe\n\n-- \nUwe Kleine-König\n\nmain(){char*a=\"main(){char*a=%c%s%c;printf(a,34,a,34%c\";printf(a,34,a,34\n,10);a=\",10);a=%c%s%c;printf(a,34,a,34,10);}%c\";printf(a,34,a,34,10);}\n\n\n#! /usr/bin/env python\n\nimport os, re, subprocess, sys\n\nsilent = False\n\ngit_dir = os.path.join(os.getenv('HOME'), 'gsrc', 'linux-2.6', '.git')\nos.putenv('GIT_DIR', git_dir)\n\ndevnull = open('/dev/null', 'w', 0)\nif silent:\n  subprocess_stdout = devnull\nelse:\n  subprocess_stdout = None\n\nif not silent:\n  print 'fetch origin'\nsubprocess.call(['git-fetch', 'origin'], stdout=subprocess_stdout)\n\nsp_describe = subprocess.Popen(['git-describe', 'origin'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)\nsp_describe_stdin, sp_describe_stderr = sp_describe.communicate()\n\nre_linuxver = re.compile('v2\\.6\\.(?P<minor>\\d+)(?P<stable>\\.\\d+)?(?P<rc>-rc\\d+)?(?P<git>-g[0-9a-fA-F]+)?')\nmo = re_linuxver.match(sp_describe_stdin)\n\nif not mo:\n  print 'cannot parse version of origin\\'s HEAD'\n  sys.exit(1)\n\nmodict = mo.groupdict()\n\nif modict['rc'] and not modict['stable']:\n  last_stable = int(modict['minor']) - 1\nelse:\n  last_stable = int(modict['minor'])\n\nfor stable in (16, last_stable - 1, last_stable):\n  if subprocess.call(['git', 'repo-config', 'remote.v2.6.%d.y.url' % stable], stdout=devnull) != 0:\n    subprocess.call(['git', 'repo-config', 'remote.v2.6.%d.y.url' % stable, 'git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.%d.y.git' % stable])\n    subprocess.call(['git', 'repo-config', 'remote.v2.6.%d.y.fetch' % stable, 'refs/heads/master:refs/remotes/stable/v2.6.%d.y' % stable])\n    subprocess.call(['git', 'repo-config', 'branch.v2.6.%d.y.remote' % stable, 'v2.6.%d.y' % stable])\n    subprocess.call(['git', 'repo-config', 'branch.v2.6.%d.y.remote' % stable, 'v2.6.%d.y' % stable])\n    subprocess.call(['git', 'repo-config', 'branch.v2.6.%d.y.merge' % stable, 'refs/heads/master'])\n\n  if not silent:\n    print 'fetch v2.6.%d.y' % stable\n  subprocess.call(['git-fetch', 'v2.6.%d.y' % stable], stdout=subprocess_stdout)\n"},{"id":"39338","messageId":"5A4D6434-3DF2-4CC7-B363-260E5F945F72@silverinsanity.com","threadId":"7652","inReplyTo":"20070414083410.GU6602@sequoia.sous-sol.org","subject":"Re: GIT and the current -stable","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2007-04-14T15:15:00Z","receivedAt":"2007-04-14T15:15:00Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Apr 14, 2007, at 4:34 AM, Chris Wright wrote:\n\n> I've already put a tree like this up on kernel.org.  The master branch\n> is Linus' tree, and there's branches for each of the stable releases\n> called linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n>\n> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6- \n> stable.git;a=summary\n\nIs HEAD for that repo the most recent stable branch, or (as gitweb  \nmakes it look) Linus's head.  I'd expect a \"-stable\" repo to point at  \nthe most recent stable commit, not the most recent development  \ncommit.  And I'd also expect gitweb's summary page to show the  \nshortlog for HEAd.  One of my assumptions are being broken and I  \ndon't like it.  It leaves me all confused...\n\n(I'd just clone your repo and look for myself, but I'm still pulling  \nLinus's tree for the first time and I don't have a fast connection.)\n\n~~ Brian\n"},{"id":"39339","messageId":"20070414171908.GU10574@sequoia.sous-sol.org","threadId":"7652","inReplyTo":"5A4D6434-3DF2-4CC7-B363-260E5F945F72@silverinsanity.com","subject":"Re: GIT and the current -stable","fromName":"Chris Wright","fromEmail":"chrisw@sous-sol.org","sentAt":"2007-04-14T17:19:08Z","receivedAt":"2007-04-14T17:19:08Z","isPatch":false,"sender":{"key":"chrisw@sous-sol.org","avatar":null},"body":"* Brian Gernhardt (benji@silverinsanity.com) wrote:\n> On Apr 14, 2007, at 4:34 AM, Chris Wright wrote:\n> >I've already put a tree like this up on kernel.org.  The master branch\n> >is Linus' tree, and there's branches for each of the stable releases\n> >called linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n> >\n> >http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=summary\n> \n> Is HEAD for that repo the most recent stable branch, or (as gitweb  \n> makes it look) Linus's head.  I'd expect a \"-stable\" repo to point at  \n> the most recent stable commit, not the most recent development  \n> commit.  And I'd also expect gitweb's summary page to show the  \n> shortlog for HEAd.  One of my assumptions are being broken and I  \n> don't like it.  It leaves me all confused...\n\nAs I mentioned.  The master branch (HEAD) is Linus' tree, and each\nstable tree is on its own branch.  You'll find shortlog summarizes the\nmain branch, so yes, gitweb's summary is a bit confusing based on your\nassumptions.  This is a new tree and hasn't been publicized until now.\nIt does make sense to have its head be the newest stable, I'll switch\nthat around.\n\nthanks,\n-chris\n"},{"id":"39341","messageId":"F45BE11E-B30B-43EB-AB7C-8C02EF69AF18@silverinsanity.com","threadId":"7652","inReplyTo":"20070414171908.GU10574@sequoia.sous-sol.org","subject":"Re: GIT and the current -stable","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2007-04-14T17:23:47Z","receivedAt":"2007-04-14T17:23:47Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Apr 14, 2007, at 1:19 PM, Chris Wright wrote:\n\n> As I mentioned.  The master branch (HEAD) is Linus' tree, and each\n> stable tree is on its own branch.\n\nHm.  I should drink my coffee, then read the mailing list, not the  \nother way around.  If you do update HEAD to be the most recent  \nstable, my thanks.  Apologies for the noise.\n\n~~ Brian\n"},{"id":"39342","messageId":"20070414173116.GV10574@sequoia.sous-sol.org","threadId":"7652","inReplyTo":"F45BE11E-B30B-43EB-AB7C-8C02EF69AF18@silverinsanity.com","subject":"Re: GIT and the current -stable","fromName":"Chris Wright","fromEmail":"chrisw@sous-sol.org","sentAt":"2007-04-14T17:31:16Z","receivedAt":"2007-04-14T17:31:16Z","isPatch":false,"sender":{"key":"chrisw@sous-sol.org","avatar":null},"body":"* Brian Gernhardt (benji@silverinsanity.com) wrote:\n> Hm.  I should drink my coffee, then read the mailing list, not the  \n> other way around.  If you do update HEAD to be the most recent  \n> stable, my thanks.  Apologies for the noise.\n\nNo problem, was a good suggestion (and it's done).\n\nthanks,\n-chris\n"},{"id":"39343","messageId":"Pine.LNX.4.64.0704141028460.5473@woody.linux-foundation.org","threadId":"7652","inReplyTo":"7vfy73bhik.fsf@assigned-by-dhcp.cox.net","subject":"Re: GIT and the current -stable","fromName":"Linus Torvalds","fromEmail":"torvalds@linux-foundation.org","sentAt":"2007-04-14T17:34:20Z","receivedAt":"2007-04-14T17:34:20Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Fri, 13 Apr 2007, Junio C Hamano wrote:\n> \n> I think adding these lines to .git/config would do the trick,\n> after you have done the \"checkout -b v2.6.20 v2.6.20\" step:\n> \n> [branch \"v2.6.20\"]\n> \tremote = stable\n> \tmerge = refs/heads/master\n\nPlease don't do this. Using the same name for a branch as for a tag is \nmadness. Call it \"v2.6.20-stable\" or anything else, but don't re-use the \nsame naming as for tags.\n\nSure, git will have some random well-defined order of parsing which one \n\"v2.6.20\" actually means in any particular context (usually the tag-name \nwill take precedence, except for contexts where the branchname is \nrequired!), and yeah, you can always make things unambiguous by specifying \nthe full name (ie say \"[refs/]tags/v2.6.20\" when you want to make sure \nit's unambiguously the tag, not the branch) but it's still guaranteed to \ncause confusion at *some* level, if only for the user.\n\nSo just don't do it. \n\n\t\tLinus\n"},{"id":"39345","messageId":"75b57c110704141145r2b371d5dpbcf915973b83789a@mail.gmail.com","threadId":"7652","inReplyTo":"Pine.LNX.4.64.0704141028460.5473@woody.linux-foundation.org","subject":"Re: GIT and the current -stable","fromName":"Gerb Stralko","fromEmail":"gerb.stralko@gmail.com","sentAt":"2007-04-14T18:45:53Z","receivedAt":"2007-04-14T18:45:53Z","isPatch":false,"sender":{"key":"gerb.stralko@gmail.com","avatar":null},"body":"> Please don't do this. Using the same name for a branch as for a tag is\n> madness. Call it \"v2.6.20-stable\" or anything else, but don't re-use the\n> same naming as for tags.\n>\n\nYes I have done this before, and it took me awhile to realize what was\ngoing on.  It caused me some grief, and a few hours of lost time...Of\ncourse this was back in my earlier days ;)\n"},{"id":"39346","messageId":"Pine.LNX.4.64.0704141917320.6461@beast.quantumfyre.co.uk","threadId":"7652","inReplyTo":"20070414171908.GU10574@sequoia.sous-sol.org","subject":"Re: GIT and the current -stable","fromName":"Julian Phillips","fromEmail":"julian@quantumfyre.co.uk","sentAt":"2007-04-14T19:07:28Z","receivedAt":"2007-04-14T19:07:28Z","isPatch":false,"sender":{"key":"julian@quantumfyre.co.uk","avatar":"https://avatars.githubusercontent.com/u/948888?v=4"},"body":"On Sat, 14 Apr 2007, Chris Wright wrote:\n\n> * Brian Gernhardt (benji@silverinsanity.com) wrote:\n>> On Apr 14, 2007, at 4:34 AM, Chris Wright wrote:\n>>> I've already put a tree like this up on kernel.org.  The master branch\n>>> is Linus' tree, and there's branches for each of the stable releases\n>>> called linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n>>>\n>>> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=summary\n>>\n>> Is HEAD for that repo the most recent stable branch, or (as gitweb\n>> makes it look) Linus's head.  I'd expect a \"-stable\" repo to point at\n>> the most recent stable commit, not the most recent development\n>> commit.  And I'd also expect gitweb's summary page to show the\n>> shortlog for HEAd.  One of my assumptions are being broken and I\n>> don't like it.  It leaves me all confused...\n>\n> As I mentioned.  The master branch (HEAD) is Linus' tree, and each\n> stable tree is on its own branch.  You'll find shortlog summarizes the\n> main branch, so yes, gitweb's summary is a bit confusing based on your\n> assumptions.  This is a new tree and hasn't been publicized until now.\n> It does make sense to have its head be the newest stable, I'll switch\n> that around.\n\nWould it not make more sense to point HEAD at the linux-2.6.20-y branch \nand either let master be Linus' tree or simply not have a master branch? \nOtherwise, what happens to master when the latest stable tree becomes \nlinux-2.6.21-y?\n\n-- \nJulian\n\n  ---\nMost people want either less corruption or more of a chance to\nparticipate in it.\n"},{"id":"39349","messageId":"46216001.3000503@gmail.com","threadId":"7652","inReplyTo":"462096AA.3080003@gmail.com","subject":"Re: GIT and the current -stable","fromName":"Rene Herman","fromEmail":"rene.herman@gmail.com","sentAt":"2007-04-14T23:13:05Z","receivedAt":"2007-04-14T23:13:05Z","isPatch":false,"sender":{"key":"rene.herman@gmail.com","avatar":null},"body":"On 04/14/2007 10:54 AM, Rene Herman wrote:\n\n> On 04/14/2007 10:34 AM, Chris Wright wrote:\n> \n>> I've already put a tree like this up on kernel.org.  The master branch\n>> is Linus' tree, and there's branches for each of the stable releases\n>> called linux-2.6.[12-20].y (I didn't add 2.6.11.y).\n>>\n>> http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6-stable.git;a=summary \n> \n> I see, thank you; that sounds like a good \"master\" repo to clone then.\n\nOkay, I just cloned this repo, like:\n\ngit clone -n \\\ngit://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6-stable.git \\\nstable\n\nHow do I now checkout for example 2.6.20.6, or get a diff between 2.6.20.6 \nand the (at the moment of writing latest -stable) 2.6.20.7?\n\nrene@7ixe4:~/src/linux$ cd stable\nrene@7ixe4:~/src/linux/stable$ git branch -a\n* master\n   origin/HEAD\n   origin/linux-2.6\n   origin/linux-2.6.12.y\n   origin/linux-2.6.13.y\n   origin/linux-2.6.14.y\n   origin/linux-2.6.15.y\n   origin/linux-2.6.16.y\n   origin/linux-2.6.17.y\n   origin/linux-2.6.18.y\n   origin/linux-2.6.19.y\n   origin/linux-2.6.20.y\n   origin/master\n\nand I can check them out like\n\nrene@7ixe4:~/src/linux/stable$ git checkout origin/linux-2.6.20.y\n\nor in this case, but only this case, like:\n\nrene@7ixe4:~/src/linux/stable$ git checkout v2.6.20.7\n\n\"v2.6.20.7\" seems to be the only tag from the stable branches that's present \n  in this tree?\n\nrene@7ixe4:[...]$ git tag -l | grep \"v2\\.6\\.[[:digit:]]\\{1,2\\}\\.\"\nv2.6.20.7\n\nRene.\n"},{"id":"39352","messageId":"Pine.LNX.4.64.0704150110490.17780@beast.quantumfyre.co.uk","threadId":"7652","inReplyTo":"46216001.3000503@gmail.com","subject":"Re: GIT and the current -stable","fromName":"Julian Phillips","fromEmail":"julian@quantumfyre.co.uk","sentAt":"2007-04-15T00:23:56Z","receivedAt":"2007-04-15T00:23:56Z","isPatch":false,"sender":{"key":"julian@quantumfyre.co.uk","avatar":"https://avatars.githubusercontent.com/u/948888?v=4"},"body":"On Sun, 15 Apr 2007, Rene Herman wrote:\n\n>\n> \"v2.6.20.7\" seems to be the only tag from the stable branches that's present\n>  in this tree?\n>\n> rene@7ixe4:[...]$ git tag -l | grep \"v2\\.6\\.[[:digit:]]\\{1,2\\}\\.\"\n> v2.6.20.7\n\nObviously I don't know how Chris created his conglomerated repo, but I \njust made one of my own, and it has all the tags I would expect in it ... \nso it's not an inherent git problem (or not in 1.5.1.1 anyway).\n\nI guess that Chris created his in such a way that the automated tag \nfollowing code didn't trigger? (Or maybe used a really old git?)\n\n(Mine's at http://git.q42.co.uk/w/stable.git if anyone is interested \nenough to want to look at it ...)\n\nIt only took me 4 commands to create too (ok, so three of them were bash \nfor loops ... and I did do a little bit more to tidy up), I do enjoy using \nflexible tools :D.\n\n-- \nJulian\n\n  ---\nGo slowly to the entertainments of thy friends, but quickly to their\nmisfortunes.\n \t\t-- Chilo\n"}]}