{"thread":{"id":"3450","subject":"Re: [PATCH] New git-seek command with documentation and test.","startedAt":"2006-02-24T00:29:15Z","lastAt":"2006-02-24T10:11:48Z","messageCount":5,"participants":["linux@horizon.com","Johannes Schindelin","H. Peter Anvin","Andreas Ericsson"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"16647","messageId":"20060224002915.17331.qmail@science.horizon.com","threadId":"3450","inReplyTo":null,"subject":"Re: [PATCH] New git-seek command with documentation and test.","fromName":"","fromEmail":"linux@horizon.com","sentAt":"2006-02-24T00:29:15Z","receivedAt":"2006-02-24T00:29:15Z","isPatch":true,"sender":{"key":"linux@horizon.com","avatar":null},"body":"The annoying thing about temporary branch names like \"bisect\" and \"seek\"\nis that:\na) They clutter up the nae space available to the repository user.\n   Users have to know that those are reserved names.\nb) If a repository is cloned while they're in use, they might get\n   into a \"remotes\" file, with even more confusing results.\n\nThis is somewhat heretical, but how about making a truly unnamed branch by\nhaving .git/HEAD *not* be a symlink, but rather hold a commit ID directly?\nIt's already well established that files in the .git directory directly\nare strictly local to this working directory, so it seems a much better\nhome for such temporary state.\n\nAdmittedly, this requires more invasive edits (particularly adding a third\nlegitimate case to validate_symref()), but it seems to make more sense.\nAnd be ultimately simpler than workarounds for the above problems.\n\nJust loosen the rules from \".git/HEAD must be a symlink\" to\n\".git/HEAD must be a symlink before you can check in\".\n\n\nYes, I know it's radical.  At least I'm not questioning the\npower and efficacy of indulgences.  :-)\n"},{"id":"16649","messageId":"Pine.LNX.4.63.0602240152490.32472@wbgn013.biozentrum.uni-wuerzburg.de","threadId":"3450","inReplyTo":"20060224002915.17331.qmail@science.horizon.com","subject":"Re: [PATCH] New git-seek command with documentation and test.","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2006-02-24T00:54:33Z","receivedAt":"2006-02-24T00:54:33Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Fri, 23 Feb 2006, linux@horizon.com wrote:\n\n> This is somewhat heretical, but how about making a truly unnamed branch by\n> having .git/HEAD *not* be a symlink, but rather hold a commit ID directly?\n\nNot heretical. How do you intend to switch branches now? And how do you \nintend to record the starting point of git-seek to which you want to \nreturn to? All leads back to .git/HEAD pointing to a branch (or whatever \nyou want to call it). And BTW, .git/HEAD is no symlink these days, but a \nsymref.\n\nHth,\nDscho\n"},{"id":"16651","messageId":"20060224012312.25603.qmail@science.horizon.com","threadId":"3450","inReplyTo":"Pine.LNX.4.63.0602240152490.32472@wbgn013.biozentrum.uni-wuerzburg.de","subject":"Re: [PATCH] New git-seek command with documentation and test.","fromName":"","fromEmail":"linux@horizon.com","sentAt":"2006-02-24T01:23:12Z","receivedAt":"2006-02-24T01:23:12Z","isPatch":true,"sender":{"key":"linux@horizon.com","avatar":null},"body":"> Not heretical. How do you intend to switch branches now?\n\nPoint .git/HEAD at the branch like usual.\n.git/HEAD would not be a symref *only* when on the unnamed temporary\nbranch (which doesn't accept commits).\n\n> And how do you intend to record the starting point of git-seek to\n> which you want to return to?\n\nTe same way it's done now for git-seek or git-bisect: by copying the\nold HEAD to a temporary location like .git/head-name.\n\n> All leads back to .git/HEAD pointing to a branch (or whatever \n> you want to call it).\n\nIn the usual case, yes it should.  Any time you want to be able to\ndevelop on a branch, you need .git/HEAD pointing to a branch.\nYou only make it point to a commit directly is when exploring the\nhistory with no intention of developing from it.\n\n(Note that you can easily change your mind with a simple\n\"git checkout -b <branch>\".)\n\n> And BTW, .git/HEAD is no symlink these days, but a symref.\n\nYes, I'm sorry; I was just being lazy with my terminology.\n"},{"id":"16656","messageId":"43FEAD62.6050302@zytor.com","threadId":"3450","inReplyTo":"20060224002915.17331.qmail@science.horizon.com","subject":"Re: [PATCH] New git-seek command with documentation and test.","fromName":"H. Peter Anvin","fromEmail":"hpa@zytor.com","sentAt":"2006-02-24T06:53:22Z","receivedAt":"2006-02-24T06:53:22Z","isPatch":true,"sender":{"key":"hpa@zytor.com","avatar":null},"body":"linux@horizon.com wrote:\n> The annoying thing about temporary branch names like \"bisect\" and \"seek\"\n> is that:\n> a) They clutter up the nae space available to the repository user.\n>    Users have to know that those are reserved names.\n> b) If a repository is cloned while they're in use, they might get\n>    into a \"remotes\" file, with even more confusing results.\n> \n> This is somewhat heretical, but how about making a truly unnamed branch by\n> having .git/HEAD *not* be a symlink, but rather hold a commit ID directly?\n> It's already well established that files in the .git directory directly\n> are strictly local to this working directory, so it seems a much better\n> home for such temporary state.\n> \n\nIt might be easier to just reserve part of the namespace, e.g. \".bisect\" \nand \".seek\" instead.\n\n\t-hpa\n"},{"id":"16661","messageId":"43FEDBE4.8040200@op5.se","threadId":"3450","inReplyTo":"43FEAD62.6050302@zytor.com","subject":"Re: [PATCH] New git-seek command with documentation and test.","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2006-02-24T10:11:48Z","receivedAt":"2006-02-24T10:11:48Z","isPatch":true,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"H. Peter Anvin wrote:\n> linux@horizon.com wrote:\n> \n>> The annoying thing about temporary branch names like \"bisect\" and \"seek\"\n>> is that:\n>> a) They clutter up the nae space available to the repository user.\n>>    Users have to know that those are reserved names.\n>> b) If a repository is cloned while they're in use, they might get\n>>    into a \"remotes\" file, with even more confusing results.\n>>\n>> This is somewhat heretical, but how about making a truly unnamed \n>> branch by\n>> having .git/HEAD *not* be a symlink, but rather hold a commit ID \n>> directly?\n>> It's already well established that files in the .git directory directly\n>> are strictly local to this working directory, so it seems a much better\n>> home for such temporary state.\n>>\n> \n> It might be easier to just reserve part of the namespace, e.g. \".bisect\" \n> and \".seek\" instead.\n> \n\nAch, no. Not specific names. ^\\.-.* would be acceptable, but I sometimes \nuse '.name' or '-name' to mark a temporary branch. Making .- or some \nsuch reserved would perhaps make sense, but not with specific names.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"}]}