{"thread":{"id":"1510","subject":"Switching heads and head vs branch after CVS import","startedAt":"2005-08-15T00:24:30Z","lastAt":"2005-08-15T22:53:20Z","messageCount":16,"participants":["Martin Langhoff","Junio C Hamano","Linus Torvalds","Sven Verdoolaege","Wolfgang Denk","Matthias Urlichs","Johannes Schindelin"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"7250","messageId":"46a038f905081417241f9598cc@mail.gmail.com","threadId":"1510","inReplyTo":null,"subject":"Switching heads and head vs branch after CVS import","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2005-08-15T00:24:30Z","receivedAt":"2005-08-15T00:24:30Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"After having done a cvs import of Moodle using git-cvsimport-script\nall the cvs branches show up as heads. How do I switch heads within a\ncheckout? cogito doesn't seem to be able to, and I'm unsure on how to\ndo it with git.\n\nAnd I am confused about the difference between heads and branches. Git\nand cogito seem  prepared to merge across the heads (using cg-update\nfor instance, when pointed to a different head merged it in, rather\nthan switched to it), that would match a workflow where a group of\npeople maintain very closely related heads and merge constantly\nacross.\n\nBranches don't seem to have the same expectation or support in the\ntoolset. Why? What makes a branch different from a head, apart from\nthe fact that they would be expected to drift further apart?\n\nIn any case, should the cvsimport turn cvs branches into git branches\ninstead of heads? Is there are way to turn a head into a proper\nbranch?\n\ncheers,\n\nmartin\n"},{"id":"7252","messageId":"7vmznkav80.fsf@assigned-by-dhcp.cox.net","threadId":"1510","inReplyTo":"46a038f905081417241f9598cc@mail.gmail.com","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-08-15T00:40:15Z","receivedAt":"2005-08-15T00:40:15Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Martin Langhoff <martin.langhoff@gmail.com> writes:\n\n> After having done a cvs import of Moodle using git-cvsimport-script\n> all the cvs branches show up as heads. How do I switch heads within a\n> checkout? cogito doesn't seem to be able to, and I'm unsure on how to\n> do it with git.\n\nThe documentation may be quite sketchy on this front.\n\nI do not speak for Pasky, so Cogito may treat them a little\ndifferently, but at the core GIT level, you can treat branches\nand heads synonymously.\n\nWhat you have recorded in .git/refs/heads/frotz file is the SHA1\nobject name of the commit that is at the top of \"frotz\" branch.\nWhen your .git/HEAD symlink points at refs/heads/nitfol, your\nworking tree is said to be on \"nitfol\" branch.\n\nYou switch branches by using \"git checkout\".  You can create a\nnew branch using \"git checkout -b newbranch commit-id\".  You\nexamine which branch you are on by \"readlink .git/HEAD\".  As you\nalready found out, you can merge branches with \"git resolve\nmaster other-branch 'comment'\".  The last one is briefly covered\nby the tutorial.\n"},{"id":"7253","messageId":"Pine.LNX.4.58.0508141737270.3553@g5.osdl.org","threadId":"1510","inReplyTo":"46a038f905081417241f9598cc@mail.gmail.com","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-08-15T00:46:30Z","receivedAt":"2005-08-15T00:46:30Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Mon, 15 Aug 2005, Martin Langhoff wrote:\n>\n> After having done a cvs import of Moodle using git-cvsimport-script\n> all the cvs branches show up as heads. How do I switch heads within a\n> checkout? cogito doesn't seem to be able to, and I'm unsure on how to\n> do it with git.\n\nJust do\n\n\tgit checkout branch-name\n\nto switch between them.\n\nOne thing that \"git cvsimport\" does not know to do is to show when a\nbranch was merged back into the HEAD. That would be a very interesting\nthing to see, but I don't think there's any way to get that information\nout of CVS (so you'd have to basically make an educated guess by looking\nat the changes).\n\nSo in a cvsimport, you'll never see a merge back to the head, even if one \ntechnically took place. \n\n> And I am confused about the difference between heads and branches.\n\nConfusion of naming.\n\nbranches and heads are the same thing in git. However, largely due to \nhistorical reasons, I encouraged \"one tree pre branch\", and then you had \n\"external branches\" which were totally separate repositories.\n\nNow, we're stuck with both the \"internal branches\" (heads) and \"external\nbranches\" (other repositories) _both_ being confusingly called \"branch\", \nand then to make it more confusing, sometimes you'll see people say \n\"head\" to make clear that it's a branch internal to one repo.\n\n> In any case, should the cvsimport turn cvs branches into git branches\n> instead of heads? Is there are way to turn a head into a proper\n> branch?\n\nThey are \"proper branches\", and sorry about the confusion. A head is a \nbranch.\n\n\t\t\tLinus\n"},{"id":"7256","messageId":"46a038f905081419057cc6b5cd@mail.gmail.com","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508141737270.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2005-08-15T02:05:14Z","receivedAt":"2005-08-15T02:05:14Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"> Just do\n> \n>         git checkout branch-name\n> \n> to switch between them.\n\nthanks! I was doing cg-branch-chg branch-name and it wasn't working.\n\n> So in a cvsimport, you'll never see a merge back to the head, even if one\n> technically took place.\n\nThere may be some surprises in here! gitk --all shows at least one\nbranch opening and merging back into origin, and it has figured it out\ncorrectly: that was a feature branch where people worked on for a\nwhile and merged back. I haven't had time to explore it more, but it\nlooks promising.\n\nExcept for the keyword expansion. surely there's a way to tell cvsps\nto not do it. Why would we ever want it?\n\n> > And I am confused about the difference between heads and branches.\n> \n> Confusion of naming.\n> \n> branches and heads are the same thing in git. \n\nright. There are two separate directories in .git for them, so I was\nmisled by that. Should I assume git is safe from name clashes or is it\nup to porcelain to deal with such minutiae?\n\n> They are \"proper branches\", and sorry about the confusion. \n\nDon't worry! Means I'll have to wake up and pay attention from now on...\n\nthanks,\n\n\nmartin\n"},{"id":"7258","messageId":"Pine.LNX.4.58.0508141937251.3553@g5.osdl.org","threadId":"1510","inReplyTo":"46a038f905081419057cc6b5cd@mail.gmail.com","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-08-15T02:49:26Z","receivedAt":"2005-08-15T02:49:26Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Mon, 15 Aug 2005, Martin Langhoff wrote:\n> \n> > So in a cvsimport, you'll never see a merge back to the head, even if one\n> > technically took place.\n> \n> There may be some surprises in here! gitk --all shows at least one\n> branch opening and merging back into origin, and it has figured it out\n> correctly\n\nOh, wow. The new cvsimport is obviously being a hell of a lot smarter than \nmy original one was. Goodie.\n\n> Except for the keyword expansion. surely there's a way to tell cvsps\n> to not do it. Why would we ever want it?\n\nAhh. I don't think we should blame cvsps, I think cvsimport should use the \n\"-ko\" flag to disable keyword expansion or whatever the magic flag is.\n\nSven, Matthias, opinions? I've never used CVS keyword expansion, and \nalways felt it was pointless, but hey..\n\n> > branches and heads are the same thing in git. \n> \n> right. There are two separate directories in .git for them, so I was\n> misled by that. Should I assume git is safe from name clashes or is it\n> up to porcelain to deal with such minutiae?\n\nWell, you actually are _expected_ to get clashes.\n\nWhat happens normally (at least for core git) is that the \".git/branches\"  \ndirectory contains external sources for the branches (for example, a \"git\nclone\" will fill in the \"origin\" source, while I often have a\n\".git/branches/parent\" in my tree because). That is just a pointer to \nwhere the external branch exists.\n\nThen, when you do something like\n\n\tgit fetch parent\n\nit will look up the source of \"parent\" by looking in the\n\".git/branches/parent\" file, and update the \".git/refs/heads/parent\" \nbranch appropriately from that external branch.\n\nSo in this example the parent \"head\" (\"local branch\") points to the actual\n_commit_ we have, while the \".git/branches/parent thing points to what \n_external_ branch it came from.\n\nBut yes, you _can_ mess this up if you want to. If you have the same \n\"external branch\" name that you use for an \"internal branch\", you deserve \nall the confusion you get ;)\n\n\t\tLinus\n"},{"id":"7283","messageId":"20050815080931.64F0D352633@atlas.denx.de","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508141737270.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Wolfgang Denk","fromEmail":"wd@denx.de","sentAt":"2005-08-15T08:09:31Z","receivedAt":"2005-08-15T08:09:31Z","isPatch":false,"sender":{"key":"wd@denx.de","avatar":null},"body":"In message <Pine.LNX.4.58.0508141737270.3553@g5.osdl.org> you wrote:\n> \n> One thing that \"git cvsimport\" does not know to do is to show when a\n> branch was merged back into the HEAD. That would be a very interesting\n> thing to see, but I don't think there's any way to get that information\n> out of CVS (so you'd have to basically make an educated guess by looking\n> at the changes).\n> \n> So in a cvsimport, you'll never see a merge back to the head, even if one \n> technically took place. \n\nI asked this question before without receiving any reply:\n\nAssume I know exactly where the merge back happenend - is  there  any\nway to tell git about it, so I don't see all these dangling heads any\nmore?\n\n\nBest regards,\n\nWolfgang Denk\n\n-- \nSoftware Engineering:  Embedded and Realtime Systems,  Embedded Linux\nPhone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de\n\"The number  of  Unix  installations  has  grown  to  10,  with  more\nexpected.\"    - The Unix Programmer's Manual, 2nd Edition, June, 1972\n"},{"id":"7278","messageId":"20050815082241.GF11882MdfPADPa@garage.linux.student.kuleuven.ac.be","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508141937251.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Sven Verdoolaege","fromEmail":"skimo@kotnet.org","sentAt":"2005-08-15T08:22:41Z","receivedAt":"2005-08-15T08:22:41Z","isPatch":false,"sender":{"key":"skimo@kotnet.org","avatar":null},"body":"On Sun, Aug 14, 2005 at 07:49:26PM -0700, Linus Torvalds wrote:\n> On Mon, 15 Aug 2005, Martin Langhoff wrote:\n> > Except for the keyword expansion. surely there's a way to tell cvsps\n> > to not do it. Why would we ever want it?\n> \n> Ahh. I don't think we should blame cvsps, I think cvsimport should use the \n> \"-ko\" flag to disable keyword expansion or whatever the magic flag is.\n> \n> Sven, Matthias, opinions? I've never used CVS keyword expansion, and \n> always felt it was pointless, but hey..\n> \n\nI don't have any strong opinion on that, but I do think\nthat by default a cvsimport should give you the same\nfile contents that a \"cvs import\" would.\nMartin's patch seems to be going in the right direction.\n\nskimo\n"},{"id":"7288","messageId":"pan.2005.08.15.09.07.10.118103@smurf.noris.de","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508141937251.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-08-15T09:07:12Z","receivedAt":"2005-08-15T09:07:12Z","isPatch":false,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Linus Torvalds wrote:\n\n>> There may be some surprises in here! gitk --all shows at least one\n>> branch opening and merging back into origin, and it has figured it out\n>> correctly\n>\n> Oh, wow. The new cvsimport is obviously being a hell of a lot smarter\n> than my original one was. Goodie.\n\nUmm, actually, no, cvsimport doesn't do merges. Dunno where Martin got his\nfrom, but it wasn't me. ;-)\n\n> Sven, Matthias, opinions? I've never used CVS keyword expansion, and \n> always felt it was pointless, but hey..\n\nI have intentionally kept keyword expansion on when I wrote the code,\nbecause matching up the files from CVS with files gathered from tarballs,\nDebian repositories, and what-not, becomes a whole lot easier that way.\n\nFor me, that's a major use case, esp. with CVS getting confused about its\ntags (as people haphazardly copy whole subtrees from one CVS repository\ninto a different one).\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\nDisclaimer: The quote was selected randomly. Really. | http://smurf.noris.de\n - -\nI hope you will find the courage to keep on living\ndespite the existence of this feature.\n\n\t-- Richard Stallman\n"},{"id":"7292","messageId":"46a038f90508150248159e070e@mail.gmail.com","threadId":"1510","inReplyTo":"pan.2005.08.15.09.07.10.118103@smurf.noris.de","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2005-08-15T09:48:28Z","receivedAt":"2005-08-15T09:48:28Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On 8/15/05, Matthias Urlichs <smurf@smurf.noris.de> wrote:\n> Umm, actually, no, cvsimport doesn't do merges. Dunno where Martin got his\n> from, but it wasn't me. ;-)\n\nJust wishful thinking, and a viewing things on a remote box over a\nslow x11-over-ssh connection. When I think about it, it doesn't seem\npossible either, so I better stop dreaming.\n\n> > Sven, Matthias, opinions? I've never used CVS keyword expansion, and\n> > always felt it was pointless, but hey..\n> \n> I have intentionally kept keyword expansion on when I wrote the code,\n> because matching up the files from CVS with files gathered from tarballs,\n> Debian repositories, and what-not, becomes a whole lot easier that way.\n\nMakes sense in that context. On the other hand, if you are you're\nmigrating a project from cvs to git, getting rid of the noise is good.\n\nAnd the resulting git repo will actually let you do trivial merges of\nold commits after you've switched -- otherwise every file-level merge\nwill conflict, as it does in cvs when you don't use -kk.\n\ncheers,\n\n\nmartin\n"},{"id":"7296","messageId":"pan.2005.08.15.10.38.50.677503@smurf.noris.de","threadId":"1510","inReplyTo":"20050815080931.64F0D352633@atlas.denx.de","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-08-15T10:38:53Z","receivedAt":"2005-08-15T10:38:53Z","isPatch":false,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Wolfgang Denk wrote:\n\n> Assume I know exactly where the merge back happenend - is  there  any\n> way to tell git about it, so I don't see all these dangling heads any\n> more?\n\nTwo ways:\n- you can enhance cvs2git to do it at the appropriate time. Good luck.\n- after the fact, and after finding the relevant heads manually, you can\n  use .git/info/grafts to fake it.\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\nDisclaimer: The quote was selected randomly. Really. | http://smurf.noris.de\n - -\nAs crazy as hauling timber into the woods.\n\t\t-- Quintus Horatius Flaccus (Horace)\n"},{"id":"7299","messageId":"20050815114503.GG11882MdfPADPa@garage.linux.student.kuleuven.ac.be","threadId":"1510","inReplyTo":"pan.2005.08.15.10.38.50.677503@smurf.noris.de","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Sven Verdoolaege","fromEmail":"skimo@kotnet.org","sentAt":"2005-08-15T11:45:03Z","receivedAt":"2005-08-15T11:45:03Z","isPatch":false,"sender":{"key":"skimo@kotnet.org","avatar":null},"body":"On Mon, Aug 15, 2005 at 12:38:53PM +0200, Matthias Urlichs wrote:\n> Hi, Wolfgang Denk wrote:\n> \n> > Assume I know exactly where the merge back happenend - is  there  any\n> > way to tell git about it, so I don't see all these dangling heads any\n> > more?\n> \n> Two ways:\n> - you can enhance cvs2git to do it at the appropriate time. Good luck.\n> - after the fact, and after finding the relevant heads manually, you can\n>   use .git/info/grafts to fake it.\n- Create the merge commit manually and then rebase the rest of the branch\n  on top of that commit.\n  Maybe you could enhance git-rebase to rebase on top of more than\n  one head, performing the merge for you.\n\nskimo\n"},{"id":"7303","messageId":"Pine.LNX.4.58.0508150930020.3553@g5.osdl.org","threadId":"1510","inReplyTo":"20050815080931.64F0D352633@atlas.denx.de","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-08-15T16:42:20Z","receivedAt":"2005-08-15T16:42:20Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Mon, 15 Aug 2005, Wolfgang Denk wrote:\n> \n> I asked this question before without receiving any reply:\n> \n> Assume I know exactly where the merge back happenend - is  there  any\n> way to tell git about it, so I don't see all these dangling heads any\n> more?\n\nYou'd have to teach cvsimport about it. Basically, in cvsimport, you have\n\n\t\t...\n                my @par = ();\n                @par = (\"-p\",$parent) if $parent;\n\nwhich sets the parent. Right now the parent is _always_ just the previous \nhead of the branch we're committing to (I'm no good with perl, but I think \nMartin was wrong - there's no code to handle the case of a merge: once we \nbranch off, \"git cvsimport\" will not currently ever create a \nmerge-commit).\n\nBut if you have some heuristic for figuring out that it's a merge, and\nknow the other branch is, you could add more parents by just adding\nanother (\"-p\", $merge_parent) to the parameters to git-commit-tree.\n\nThe problem is literally how to figure out that it's a merge. You can \nprobably make a guess from the commit message together with possibly \nlooking at the diff. \n\nThe good news is that if you guess wrong, and you claim a merge where none\nexists, it doesn't really do any real damage. It might make th history\nlook strange, and it might make subsequent git merges harder if the branch\nis actually still live and you want to continue development within git.\nBut even that is debatable (if the eventual git merge isn't trivial,\nyou're likely to have to merge by hand anyway - and it's going to be as\nhard as a CVS merge would have been, because quite frankly, you've got the\nsame information CVS had..).\n\n\t\tLinus\n"},{"id":"7310","messageId":"46a038f90508151309269ffc04@mail.gmail.com","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508150930020.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Martin Langhoff","fromEmail":"martin.langhoff@gmail.com","sentAt":"2005-08-15T20:09:02Z","receivedAt":"2005-08-15T20:09:02Z","isPatch":false,"sender":{"key":"martin.langhoff@gmail.com","avatar":"https://gravatar.com/avatar/1e3f311b6c4c15836501901ca58f8c0b0667246488084ba524d8bc9867e22fd9?d=mp&s=160"},"body":"On 8/16/05, Linus Torvalds <torvalds@osdl.org> wrote:\n> The good news is that if you guess wrong, and you claim a merge where none\n> exists, it doesn't really do any real damage. \n\nI had figured out what part of the code I wanted to hack, but was\nconcerned that marking things that were merges in cvs-speak but not in\ngit-speak would leave me with broken import and problems going\nforward.\n\nIf I find the time, I'll add some sort of pattern-match parameters to\nbe tried against the commitmsg to extract likely head/branch names\nwhere we are merging from. My problem right now is that the only cvs\nrepo with interesting branches and merges I have is huge, and takes an\nhour to import. That puts a damper on things, unfortunately.\n\ncheers,\n\n\nmartin\n"},{"id":"7311","messageId":"20050815202247.62E00352633@atlas.denx.de","threadId":"1510","inReplyTo":"46a038f90508151309269ffc04@mail.gmail.com","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Wolfgang Denk","fromEmail":"wd@denx.de","sentAt":"2005-08-15T20:22:47Z","receivedAt":"2005-08-15T20:22:47Z","isPatch":false,"sender":{"key":"wd@denx.de","avatar":null},"body":"In message <46a038f90508151309269ffc04@mail.gmail.com> you wrote:\n>\n> If I find the time, I'll add some sort of pattern-match parameters to\n> be tried against the commitmsg to extract likely head/branch names\n> where we are merging from. My problem right now is that the only cvs\n> repo with interesting branches and merges I have is huge, and takes an\n> hour to import. That puts a damper on things, unfortunately.\n\nIn a first step, and to try things out, it might be sufficient if one\ncould feed in this information manually, like by providing a list  of\nPatchSet ID's which are known to be merges ?\n\nAt least in my case where the number of branches and merges is  small\nthis would be completely satisfactory.\n\nBest regards,\n\nWolfgang Denk\n\n-- \nSoftware Engineering:  Embedded and Realtime Systems,  Embedded Linux\nPhone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de\nWhat is mind?  No matter.  What is matter?  Never mind.\n                                      -- Thomas Hewitt Key, 1799-1875\n"},{"id":"7318","messageId":"Pine.LNX.4.58.0508151535130.3553@g5.osdl.org","threadId":"1510","inReplyTo":"46a038f90508151309269ffc04@mail.gmail.com","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-08-15T22:37:06Z","receivedAt":"2005-08-15T22:37:06Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Tue, 16 Aug 2005, Martin Langhoff wrote:\n> \n> If I find the time, I'll add some sort of pattern-match parameters to\n> be tried against the commitmsg to extract likely head/branch names\n> where we are merging from. My problem right now is that the only cvs\n> repo with interesting branches and merges I have is huge, and takes an\n> hour to import. That puts a damper on things, unfortunately.\n\nI was seriously considering just breaking the \"remote cvs\" support\nentirely (you can always just use cvsup or something to download it to\nmake it local), and just taking the RCS parsing code from GNU rcs/cvs and\nmaking a C language CVS importer. That would speed things up by an order\nof magnitude or more, as far as I can tell.\n\n\t\t\tLinus\n"},{"id":"7322","messageId":"Pine.LNX.4.63.0508160051580.26204@wgmdd8.biozentrum.uni-wuerzburg.de","threadId":"1510","inReplyTo":"Pine.LNX.4.58.0508151535130.3553@g5.osdl.org","subject":"Re: Switching heads and head vs branch after CVS import","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2005-08-15T22:53:20Z","receivedAt":"2005-08-15T22:53:20Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 15 Aug 2005, Linus Torvalds wrote:\n\n> I was seriously considering just breaking the \"remote cvs\" support\n> entirely (you can always just use cvsup or something to download it to\n> make it local), and just taking the RCS parsing code from GNU rcs/cvs and\n> making a C language CVS importer. That would speed things up by an order\n> of magnitude or more, as far as I can tell.\n\nThat may be true for many \"cvs import\" tasks, but not _at all_ for \"cvs \nupdate\" tasks. I, for one, keep track of _lots_ of CVS projects via \ngit-cvsimport. I would hate it if I could no longer do that.\n\nCiao,\nDscho\n"}]}