{"thread":{"id":"3784","subject":"Re: n-heads and patch dependency chains","startedAt":"2006-04-03T22:13:24Z","lastAt":"2006-04-03T22:13:24Z","messageCount":1,"participants":["linux@horizon.com"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"18303","messageId":"20060403221324.21960.qmail@science.horizon.com","threadId":"3784","inReplyTo":null,"subject":"Re: n-heads and patch dependency chains","fromName":"","fromEmail":"linux@horizon.com","sentAt":"2006-04-03T22:13:24Z","receivedAt":"2006-04-03T22:13:24Z","isPatch":false,"sender":{"key":"linux@horizon.com","avatar":null},"body":"> I suspect people have hard time grasping _why_ you are jumping\n> through hoops.  At least I do.  What problem are you trying to\n> solve?  You perhaps described your mechanism well enough, but it\n> is not quite clear to me what kind of operations are made easier\n> with this exercise, against which possible downside of it, if\n> any, would be judged.\n\nOh... I thought he explained that pretty well.\n\nThe problem is a long-lived out-of-tree patch, or anything else that's\ngoing to undergo repeated test releases before merging.\n\nThink about swsusp2 or resiser4 or gfs or user-mode linux (now merged)\nor nommu linux (now merged) or some similar large patch that takes a\nlot of review.\n\nThe challenge is to be able to maintain a \"latest Linux release + patches\"\ndistribution and still keep a clean patch to submit to Linus that\ndoesn't have a zillion cross-merges because he doesn't like that,\nand they confuse the development history.\n\nIt happens with a single developer when you're working on several\nindependent features and want a \"latest & greatest\" tree while still\nkeeping the feature branches separate.\n\nThis is the sort of thing that git-rebase and pu branches are used for,\nand jgarzik's libata-dev ALL branch is basically a manually operated\nhydra.\n\n\nSome combination of automatic rebasing and automatic generation of\na pu/ALL tree seems like what's being asked for here.  The former\nadds new history \"before\" the branch development, and the latter\nadds additional changes \"after\" it.  All this subterfuge is in\nthe name of keeping the feature development history clean.\n\n\nBut all of darcs' \"patch calculus\" ideas are just basically\nrebase strategies.  If someone can come up with a good alternative\nto diff-and-patch, perhaps git-rebase can develop a number of\nunderlying strategies like git-merge.\n"}]}