{"thread":{"id":"19609","subject":"A usage question","startedAt":"2009-05-31T03:34:31Z","lastAt":"2009-06-01T16:32:00Z","messageCount":2,"participants":["Jeremy O'Brien","Daniel Barkalow"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"115107","messageId":"20090531033431.GB25869@darkbox","threadId":"19609","inReplyTo":null,"subject":"A usage question","fromName":"Jeremy O'Brien","fromEmail":"obrien654j@gmail.com","sentAt":"2009-05-31T03:34:31Z","receivedAt":"2009-05-31T03:34:31Z","isPatch":false,"sender":{"key":"obrien654j@gmail.com","avatar":"https://gravatar.com/avatar/5c9159e1ccac9be7207778ee0115f17ba6193550017cad0d2454d2da04089a15?d=mp&s=160"},"body":"Hello,\n\nI have a git usage question. I'm working on three separate branches in a\nforeign SCM called Surround. One branch is the mainline, and two others\nare a v1 branch based off the mainline and the other is a v2 branch\nbased off the mainline with many new features that we hope to release\nsoon. Some components of the v1 branch are similar, but not identical to\nthe v2 branch, and other parts are completely different. I am primarily\nworking on the v2 branch, but some things that I change can/should be\nbackported to the v1 and mainline branches.\n\nThe foreign SCM requires one working directory for each branch, so I\ncurrently have three separate git repos with the contents of what is on\nSurround for each, and then I have one \"local\" git repo that I'm using\nto do my development. I have three branches on this local repo: one to\ntrack each git repo set up for Surround. I've been using topic branches\nin my local dev repo to do my work, and then merging my changes into the\nbranch I branched my topic branch from, and cherry-picking ones into the\nother two branches that could be used there. I then push these branches\nto the repos and check then into Surround when I am ready to. This\ndoesn't seem efficient to me at all, and I was wondering if there is a\nbetter setup someone could suggest that would make development easier.\nSorry for the huge message.\n\nThanks for any suggestions.\n"},{"id":"115209","messageId":"alpine.LNX.2.00.0906011215140.2147@iabervon.org","threadId":"19609","inReplyTo":"20090531033431.GB25869@darkbox","subject":"Re: A usage question","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2009-06-01T16:32:00Z","receivedAt":"2009-06-01T16:32:00Z","isPatch":false,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"On Sat, 30 May 2009, Jeremy O'Brien wrote:\n\n> Hello,\n> \n> I have a git usage question. I'm working on three separate branches in a\n> foreign SCM called Surround. One branch is the mainline, and two others\n> are a v1 branch based off the mainline and the other is a v2 branch\n> based off the mainline with many new features that we hope to release\n> soon. Some components of the v1 branch are similar, but not identical to\n> the v2 branch, and other parts are completely different. I am primarily\n> working on the v2 branch, but some things that I change can/should be\n> backported to the v1 and mainline branches.\n> \n> The foreign SCM requires one working directory for each branch, so I\n> currently have three separate git repos with the contents of what is on\n> Surround for each, and then I have one \"local\" git repo that I'm using\n> to do my development. I have three branches on this local repo: one to\n> track each git repo set up for Surround. I've been using topic branches\n> in my local dev repo to do my work, and then merging my changes into the\n> branch I branched my topic branch from, and cherry-picking ones into the\n> other two branches that could be used there. I then push these branches\n> to the repos and check then into Surround when I am ready to. This\n> doesn't seem efficient to me at all, and I was wondering if there is a\n> better setup someone could suggest that would make development easier.\n\nIt sounds to me like all of the steps are required, since Surround want \nthose directories to exist and contain your work. You may be able to \nautomate them, though, depending on how amenable Surround is to being part \nof scripts (and how comfortable you are writing scripts). Of course, in \nthe limit, a script could be called from \"git fetch\" and \"git push\", and \nit would essentially act like native git interaction with an upstream \nmaintainer who rewrites commits.\n\nIf Surround has an API like Perforce does, and it extends to allowing the \ndeveloper to implement a different view of the filesystem, you might not \neven need to have those directories on disk, unless you want to be able to \nshow your coworkers something in an environment they recognize.\n\n\t-Daniel\n*This .sig left intentionally blank*\n"}]}