Git, Mercurial or Bazaar - which do you use most?
- Klaim
- Old One
- Posts: 2565
- Joined: Sun Sep 11, 2005 1:04 am
- Location: Paris, France
- x 56
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Rebase is available in mercurial but that seem to be "recent" AFAIK.
By the way, the analysis from Google: http://code.google.com/p/support/wiki/DVCSAnalysis
By the way, the analysis from Google: http://code.google.com/p/support/wiki/DVCSAnalysis
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Hm, I just reviewed my Bazaar conversion of the Ogre repository, and on close inspection it turns out that the majority of the 700 Mb converted repository resided in a directory called obsolete_packs. Both the name and a quick google search suggest you can safely get rid of the contents of that folder (not the folder itself, though). I did that, everything still seems to work, and the repository size is now down to 170 Mb. That sounds a lot more competitive and fits the claims of the bazaar team that they have in fact gotten to the level of Mercurial with bzr 2.0.
As a test, I also pushed the trunk branch to launchpad, the process went smoothly, no interruptions whatsoever. It's here if you want to take a look: https://code.launchpad.net/~cabalistic/testogre/trunk
Now, I still can't really compare bzr's features to any of the other because I'm still a newbie when it comes to DVCS in general. Though if you want me to test/investigate something in particular, I'd be happy to do so. Aside from feature comparison, I can actually see a few advantages of bzr, which may or may not be relevant:
As a test, I also pushed the trunk branch to launchpad, the process went smoothly, no interruptions whatsoever. It's here if you want to take a look: https://code.launchpad.net/~cabalistic/testogre/trunk
Now, I still can't really compare bzr's features to any of the other because I'm still a newbie when it comes to DVCS in general. Though if you want me to test/investigate something in particular, I'd be happy to do so. Aside from feature comparison, I can actually see a few advantages of bzr, which may or may not be relevant:
- While in this vote bzr comes in last, we need to consider that there are many more users who will never have used any of the tools. From such a perspective I must say that I find bzr appealing because it has the most 'professional' looking website and offers easily accessible, up-to-date, packages/installers for all major platforms, including Windows, Mac OSX and pretty much any major Linux platform.
- On the same note, bzr ships with its own GUI as part of the package, which means that this GUI is available and the same on all platforms. Provided that the GUI is feature-complete, it would provide a common ground on all platforms, and potential guides we'd write for new users could focus on a single tool.
- Launchpad integrates directly into bzr and provides shortcuts for repository names. For example, you could checkout my above branch via . Seeing as how I constantly find myself looking up the URLs for svn repositories, that would be a lot easier to remember
Code: Select all
bzr branch lp:testogre
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Local branches in Git are indeed cool. However, they also add a complication - that your local branch names are entirely separate and in fact can be connected to remote branches arbitrarily. I've become slightly confused about this in the past until I settled on a naming convention to identify which local branches were pushing to upstream and which were just for local consumption.nikki wrote:I'm not sure, but the AFAIK (by the last time I read about it), in mercurial you can only make branches by cloning. One feature I love about git in particular is the ability to have local branches. Oh and, rebase.
Mercurial has a local branch extension for doing essentially the same thing, but by default branches that you pull are automatically named the same. This is essentially what I do with Git too, but at least here the default behaviour is self-explanatory.
Ok, that's cool. I shelved Bzr mostly because it seemed to be similar in ease of use to Mercurial but had less support but having a handle on it is useful. What speed is your upstream internet connection? I'm having problems with my 256k upstream connection with BitBucket & dropped connections.CABAListic wrote:Hm, I just reviewed my Bazaar conversion of the Ogre repository, and on close inspection it turns out that the majority of the 700 Mb converted repository resided in a directory called obsolete_packs. Both the name and a quick google search suggest you can safely get rid of the contents of that folder (not the folder itself, though). I did that, everything still seems to work, and the repository size is now down to 170 Mb. That sounds a lot more competitive and fits the claims of the bazaar team that they have in fact gotten to the level of Mercurial with bzr 2.0
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Yes, they probably are very similar, it just seemed that since BitBucket gave you problems it might be worth to reconsider Bazaar, too. Now, I must admit I don't know my actual upstream size, but from experience I think I can get upload rates of up to 100 kb/s. During the push to Launchpad Bazaar showed varying upload rates roughly between 60 and 100 kb/s, so that was quite acceptable, I think.sinbad wrote:Ok, that's cool. I shelved Bzr mostly because it seemed to be similar in ease of use to Mercurial but had less support but having a handle on it is useful. What speed is your upstream internet connection? I'm having problems with my 256k upstream connection with BitBucket & dropped connections.
If you want I can give you write access to my Launchpad test branch
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Btw, I don't know how this compares to BitBucket, GitHub and Gitorious, but Launchpad's bug tracker (assuming you are using it) can create direct links between a particular bug report and a branch or commit which is supposed to fix that bug. Due to the launchpad plugin in bzr, you don't even need to do that in Launchpad itself, but you can do: Something similar is possible with their 'blueprints' feature, which are essentially project ideas / proposals / plans.
Code: Select all
bzr commit --fixes lp:#bugid
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I've contacted BitBucket support, the problem is probably down to HTTP timeouts and I should use SSH instead - I'd actually tried to before but TortoiseHg doesn't like standard Putty plink.exe so it wasn't working, I have it working now with TortoisePlink.exe. Will update once I've tried the push again - right now my servers monthly backups are uploading though so it's a bad time to test
Trac used to have a nice feature that it would automatically link bugfixes if you just mentioned the bug number (#NNNN) in your commit message, which was even better I don't know if any of the DVCS hosts systems support this yet.
The feature I most liked about Gitorious and which I find lacking in BitBucket is management of the merge request queue. On Gitorious instead of a patch list they had a queue of merge requests from repo clones, which could be statefully managed just like a patch list but obviously because they're backed by a repo if it needs revisions it's a lot easier to track. BitBucket doesn't really have this, there's a patch queue much like on Sourceforge, and you can submit a 'pull request' but these just seem to sent a one-off notification rather than being a tracked entry in a master list. Does Launchpad have anything like that?
Trac used to have a nice feature that it would automatically link bugfixes if you just mentioned the bug number (#NNNN) in your commit message, which was even better I don't know if any of the DVCS hosts systems support this yet.
The feature I most liked about Gitorious and which I find lacking in BitBucket is management of the merge request queue. On Gitorious instead of a patch list they had a queue of merge requests from repo clones, which could be statefully managed just like a patch list but obviously because they're backed by a repo if it needs revisions it's a lot easier to track. BitBucket doesn't really have this, there's a patch queue much like on Sourceforge, and you can submit a 'pull request' but these just seem to sent a one-off notification rather than being a tracked entry in a master list. Does Launchpad have anything like that?
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Looks like it. This is apparently what you get when someone proposes a merge to your branch:
https://code.launchpad.net/~bzr-pqm/bzr/bzr.dev/+merges
Re bugtracker: Well, this --fixes lp:#bugnum is apparently just some sort of extra metadata bzr can store. You can apparently also store something else and have a mantis module pick it up (theoretically, anyway), it just happens to be integrated with the launchpad bugtracker, so I found that kind of cool
https://code.launchpad.net/~bzr-pqm/bzr/bzr.dev/+merges
Re bugtracker: Well, this --fixes lp:#bugnum is apparently just some sort of extra metadata bzr can store. You can apparently also store something else and have a mantis module pick it up (theoretically, anyway), it just happens to be integrated with the launchpad bugtracker, so I found that kind of cool
- _tommo_
- Gnoll
- Posts: 677
- Joined: Tue Sep 19, 2006 6:09 pm
- x 5
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Uhm... i am sure that in my project page Bitbucket does the samesinbad wrote:Trac used to have a nice feature that it would automatically link bugfixes if you just mentioned the bug number (#NNNN) in your commit message, which was even better I don't know if any of the DVCS hosts systems support this yet.
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
So far I've only seen the integrated merge request tracking in Launchpad and Gitorious, here's a Gitorious example: http://gitorious.org/gitorious/mainline ... uests/1979
This is a really nice way to handle patches. BitBucket has 2 features that sort of do this, but they're not quite there:
a) Issue Tracker: this is just like the Sourceforge tracker and you can attach patches. Community collaboration 1.0 This does the tracking, but the merging is still manual via patches.
b) Patch Queues: you can create Mercurial Queues against your repository and have people push changes to them. This does the merging, but there's no tracking of the status of anything as regards acceptance etc
It seems like you could create a merge request system by using the issue tracker and the patch queue together, but it's a far cry from the nicely integrated systems on Gitorious and Launchpad. I haven't found this feature on GitHub either yet. I have to say, I'm not that impressed by GitHub, it's very pretty but in terms of functionality it seems to be missing quite a few things. They only have a 'Pull Request' option which is just a person-to-person notification, not a proper project-wide tracker. I'd say GitHub and BitBucket seem to be at roughly the same level (with GitHub being prettier but BitBucket having a couple of extra features) but Gitorious and Launchpad have more useful meat to them.
This is a really nice way to handle patches. BitBucket has 2 features that sort of do this, but they're not quite there:
a) Issue Tracker: this is just like the Sourceforge tracker and you can attach patches. Community collaboration 1.0 This does the tracking, but the merging is still manual via patches.
b) Patch Queues: you can create Mercurial Queues against your repository and have people push changes to them. This does the merging, but there's no tracking of the status of anything as regards acceptance etc
It seems like you could create a merge request system by using the issue tracker and the patch queue together, but it's a far cry from the nicely integrated systems on Gitorious and Launchpad. I haven't found this feature on GitHub either yet. I have to say, I'm not that impressed by GitHub, it's very pretty but in terms of functionality it seems to be missing quite a few things. They only have a 'Pull Request' option which is just a person-to-person notification, not a proper project-wide tracker. I'd say GitHub and BitBucket seem to be at roughly the same level (with GitHub being prettier but BitBucket having a couple of extra features) but Gitorious and Launchpad have more useful meat to them.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Ok, gitorious's merge queue is slightly nicer because it includes a short summary in the overview. I find that more useful than the branch name which launchpad displays. Not a deal breaker, but that might be worth a suggestion to the launchpad team
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
So I played a bit more with launchpad, reported a bug for the testogre project and forked a branch to fix it. Unlike bitbucket etc., launchpad offers no link to clone/fork a branch, instead you need to fork the branch locally on your computer, make your changes, and then you can push it back to launchpad, creating a personal branch. That branch is automatically created as a stacked branch, so only your changes are transmitted. (Luckily so, if you had to download a 200 Mb branch only to then upload those 200 Mb to get a forked personal branch, that would have been a deal breaker.)
Linking the commit in that branch to my bug report worked flawlessy via the --fixed argument to bzr commit. The bug report and the additional branch now link each other.
So far I like launchpad.
Linking the commit in that branch to my bug report worked flawlessy via the --fixed argument to bzr commit. The bug report and the additional branch now link each other.
So far I like launchpad.
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I've talked to the BitBucket guys, who are very responsive - they have plans to extend the Pull Request functionality they have now, which is basically the same as GitHub's Merge Request feature and thus very, very basic, so that it operates more like Gitorious / Launchpad. It's not there yet though.
I've just finished pushing my Mercurial conversion to BitBucket, it's here: http://bitbucket.org/sinbad/ogre/
SSH is much more reliable now I have it working with TortoiseHg but it still took 5 1/2 hours to upload. Hopefully I can incrementally add to it quicker now though. TortoiseHg provided absolutely no functional progress bar or other indication of how far it had got while pushing so that was pretty annoying, but at least it did complete.
I've just finished pushing my Mercurial conversion to BitBucket, it's here: http://bitbucket.org/sinbad/ogre/
SSH is much more reliable now I have it working with TortoiseHg but it still took 5 1/2 hours to upload. Hopefully I can incrementally add to it quicker now though. TortoiseHg provided absolutely no functional progress bar or other indication of how far it had got while pushing so that was pretty annoying, but at least it did complete.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Hm, I don't know how fast your upload is in comparison, but upload to Launchpad took a bit less than half an hour. Granted, I only uploaded one branch, but I think trunk takes the majority of the space in my converted repository, so total time should probably not exceed 1 hour.
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
My upload speed here is absolutely terrible so it's not that far off for 200Mb. In theory I get 256kbit/s up but in reality it's more like 50kbit/s. I hate ADSL.
I'd really like to have seen the multi-branch Launchpad version, because when I tried Bazaar I wasn't sure I was keen on the way they handled branches.
I'd really like to have seen the multi-branch Launchpad version, because when I tried Bazaar I wasn't sure I was keen on the way they handled branches.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I read your comments about that, though I have to say I can't really understand them right now. Probably because I don't know how the other systems handle branches, or even what exactly branches need to be able to do for us
I'll see if I can do a full upload of all branches to launchpad later for completeness.
I'll see if I can do a full upload of all branches to launchpad later for completeness.
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
In other systems, branches are logical constructs contained within the context of the repository. A branch cannot exist alone. Even Subversion, where branches are URLs, the branch has to be under a common URL prefix so it's 'owned' by the repository.
In Bazaar, branches are repositories in their own right. The default when cloning is to clone just that branch. To switch a branch in a working copy, you effectively have to clone again (by rebinding). Compare this to Mercurial and Git where once you've cloned, you have all the branches available for switching immediately, locally.
Also this means when merging, it feels almost like you're pulling two unrelated repositories together, since you have to point at the full path, because your cloned version is just one branch.
Also, if I want to create a new branch from my current work, I have to create a whole new working copy, because I have to branch 'to' something - the branch is a location, not a logical name.
I dunno, Bazaar's way just feels weird, kind of like a hybrid between Subversion and a DVCS and I think it gains the complexity of the DVCS but some of the issues of the Subversion approach (needing a server to switch existing branches, 'heavy' branch overhead in local copies).
In Bazaar, branches are repositories in their own right. The default when cloning is to clone just that branch. To switch a branch in a working copy, you effectively have to clone again (by rebinding). Compare this to Mercurial and Git where once you've cloned, you have all the branches available for switching immediately, locally.
Also this means when merging, it feels almost like you're pulling two unrelated repositories together, since you have to point at the full path, because your cloned version is just one branch.
Also, if I want to create a new branch from my current work, I have to create a whole new working copy, because I have to branch 'to' something - the branch is a location, not a logical name.
I dunno, Bazaar's way just feels weird, kind of like a hybrid between Subversion and a DVCS and I think it gains the complexity of the DVCS but some of the issues of the Subversion approach (needing a server to switch existing branches, 'heavy' branch overhead in local copies).
- jacmoe
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Sounds an awful lot like Mercurials branching by cloning ?
Mercurial does have branches, but some find it easier to maintain when using clones as branches.
The Mercurial project does that, and Ogitor does it. Because it gives you meaningful URLs:
hg.ogitor.org/unstable and hg.ogitor.org/0.3 are branches, not separate repositories. While it might seem like they are, they share the same history.
With 'built-in' branches, we'd have to tell people to do a clone hg.ogitor.org and a hg branch '0.3' - it's a matter of preference in Mercurial, but it sounds odd that it's the only way in Bazaar.
If people accidentally forgot to switch branch, they'd be using the unstable (or the default branch).
Mercurial does have branches, but some find it easier to maintain when using clones as branches.
The Mercurial project does that, and Ogitor does it. Because it gives you meaningful URLs:
hg.ogitor.org/unstable and hg.ogitor.org/0.3 are branches, not separate repositories. While it might seem like they are, they share the same history.
With 'built-in' branches, we'd have to tell people to do a clone hg.ogitor.org and a hg branch '0.3' - it's a matter of preference in Mercurial, but it sounds odd that it's the only way in Bazaar.
If people accidentally forgot to switch branch, they'd be using the unstable (or the default branch).
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
- jacmoe
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Just two small tips from the Mercurial trenches:
- Since Mercurial doesn't give you visual progress feedback when cloning larger repositories, you can use --debug and at least be able to see that things are happening.
- If you've got a flaky connection, you can split up a clone operation by using hg clone --rev <somerev>.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I'm still not sure I get the issue, but first I might need to know what exactly you mean by "switching branches"
In any case, from what I understand, yes it sounds like Bazaar's branches are more independent than e.g. Mercurial's, but I'm not sure if this actually affects the way you'd use the branches? In principle, branches can either have their individual repositories, or they can have a shared repository (which you do need to initialise first if you want to use it). Launchpad, as I understand it, keeps the branches individual (no shared repository), but will use stacked branches for branches you inherited from another branch. For example, there appears to be no way that I can directly import the full Ogre repository, but I can push all the branches individually (via a simple shell for loop), and launchpad recognises they are branched from the trunk repository and creates them as stacked branches (see http://doc.bazaar-vcs.org/latest/en/use ... acked.html).
I guess this also means you can't directly fetch ALL branches at once (is that the issue?). You pull each individually into your local shared repository, and then I'd say from what I can tell you use them pretty much like with Mercurial (?). Perhaps I'd need a concrete use case, then I can probably better understand what is the issue and investigate whether there is a way around it
In any case, from what I understand, yes it sounds like Bazaar's branches are more independent than e.g. Mercurial's, but I'm not sure if this actually affects the way you'd use the branches? In principle, branches can either have their individual repositories, or they can have a shared repository (which you do need to initialise first if you want to use it). Launchpad, as I understand it, keeps the branches individual (no shared repository), but will use stacked branches for branches you inherited from another branch. For example, there appears to be no way that I can directly import the full Ogre repository, but I can push all the branches individually (via a simple shell for loop), and launchpad recognises they are branched from the trunk repository and creates them as stacked branches (see http://doc.bazaar-vcs.org/latest/en/use ... acked.html).
I guess this also means you can't directly fetch ALL branches at once (is that the issue?). You pull each individually into your local shared repository, and then I'd say from what I can tell you use them pretty much like with Mercurial (?). Perhaps I'd need a concrete use case, then I can probably better understand what is the issue and investigate whether there is a way around it
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Yeah, first there's the conceptual issue that I'm not sure I like 'detachable' branches as their own repos. The containment just seems backwards.
But in practical terms it causes me some workflow issues:
But in practical terms it causes me some workflow issues:
- You can't pull all branches at once, so that you can then switch branches entirely locally. I'd have to pull each branch explicitly into different folders on my machine.
- When you create a new branch you seem to have to branch into a new location. For example if I want to start an experiment, in git & hg I can branch my working copy in-situ, commit to that branch, then switch back, dealing with the experiment I just created later. Git does this best because the local branch stays local by default unless you tell it to push upstream, while Mercurial assumes you want to push all branches you create unless you use the LocalBranches non-core extension. In Bazaar I seem to have to branch into a completely new working folder which is very, very cumbersome in comparison.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Might this be what you're looking for? http://doc.bazaar-vcs.org/latest/en/use ... ckout.html
Personally I'd think I would want a separate branch for my experiments, but I'd probably create a stacked branch.
Anyway, some more on Launchpad: I'm currently pushing all of Ogre's branches to it. Launchpad by default regards all of them as my personal branches (since I pushed them). They *are* listed in the branches page of the project (https://code.launchpad.net/testogre), but as you can see, only the two branches trunk and v1-6 directly belong to the project, because I have told Launchpad that they do. (If I would properly set up the Ogre project, I'd first create a TEAM to own the project, which can also have branches, so those branches wouldn't be my personal branches, but the team's.)
In general, it appears that for any official development branch, you create a SERIES for the project, which is then displayed on the main site in a graph (see https://launchpad.net/testogre). Each series can have a main branch associated with it, which is what I did for the v1-6 series. So, a bit more of a manual setup, but perhaps more flexible/explicit? For each series, you can define milestones and releases and associate them with file downloads, it seems. Launchpad appears to me to be fairly rich with those project management options, but I don't know what the contenders have to offer here.
Personally I'd think I would want a separate branch for my experiments, but I'd probably create a stacked branch.
Anyway, some more on Launchpad: I'm currently pushing all of Ogre's branches to it. Launchpad by default regards all of them as my personal branches (since I pushed them). They *are* listed in the branches page of the project (https://code.launchpad.net/testogre), but as you can see, only the two branches trunk and v1-6 directly belong to the project, because I have told Launchpad that they do. (If I would properly set up the Ogre project, I'd first create a TEAM to own the project, which can also have branches, so those branches wouldn't be my personal branches, but the team's.)
In general, it appears that for any official development branch, you create a SERIES for the project, which is then displayed on the main site in a graph (see https://launchpad.net/testogre). Each series can have a main branch associated with it, which is what I did for the v1-6 series. So, a bit more of a manual setup, but perhaps more flexible/explicit? For each series, you can define milestones and releases and associate them with file downloads, it seems. Launchpad appears to me to be fairly rich with those project management options, but I don't know what the contenders have to offer here.
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
Hm, bitbucket feels a bit weird. I can't seem to get the commit log for any particular branch? Whenever I select one of the branches, I get taken to the source tab where I only see the latest commit message in that branch. When I switch to changesets, I'm back to seeing trunk commits. Is this intended?
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I'm not sure. The example still has it accessing the central repository when switching branches. I find the terminology somewhat confused in Bazaar (a bit like Git, but not quite as bad) because they want to allow you to work in a SVN-like model too, but I find it complicates things.CABAListic wrote:Might this be what you're looking for? http://doc.bazaar-vcs.org/latest/en/use ... ckout.html
So would I, but the point is some branches are not that much of a deviation and I'd prefer not to have to create a whole new working directory for them, and I don't want to make that a remote branch necessarily. Even the checkout option is still talking about being bound to a remote branch, which is not what I want to do.CABAListic wrote:Personally I'd think I would want a separate branch for my experiments, but I'd probably create a stacked branch.
The changesets view just shows the latest commits. If you go forward a couple of pages you'll start to see the other branches. You can't filter the changesets per branch right now it seems (you can in TortoiseHg).CABAListic wrote:Hm, bitbucket feels a bit weird. I can't seem to get the commit log for any particular branch? Whenever I select one of the branches, I get taken to the source tab where I only see the latest commit message in that branch. When I switch to changesets, I'm back to seeing trunk commits. Is this intended?
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
As far as I understand, the difference between a checkout and a branch is simply that a checkout is directly bound to another branch (not necessarily remote) and commits to that one first before doing the commit locally (i. e. svn style). You can, however, switch between branch and checkout mode at any time. So I believe (haven't tested it) you could probably do the following:
switch will bind (i. e. turn to checkout mode) your branch to a new master, then unbind brings you back to branch mode. Perhaps there is a more direct way, I don't know
Code: Select all
bzr switch some_other_branch
bzr unbind
-
- OGRE Retired Team Member
- Posts: 2903
- Joined: Thu Jan 18, 2007 2:48 pm
- x 58
- Contact:
Re: Git, Mercurial or Bazaar - which do you use most?
I don't know if this is helpful, but I did the following test:
First I created a local repository and pulled the trunk and shoggoth branches.
Then I created an experimenting branch from trunk, did a quick edit in it, committed and pushed the change to trunk:
And then I decided to change the experiment trunk to be based on shoggoth (not really sensible since trunk and shoggoth differ quite a lot, but anyway). Doing these steps works:
After that, experiment is at the state of v1-6. I think you can alias these commands in bzr if you want a quicker route.
Well, that's my findings so far.
First I created a local repository and pulled the trunk and shoggoth branches.
Code: Select all
bzr init-repo ogre
cd ogre
bzr branch lp:testogre trunk
bzr branch lp:testogre/v1-6
Code: Select all
bzr branch trunk experiment
cd experiment
// do some work...
bzr commit -m "Work."
bzr push ../trunk
Code: Select all
bzr bind ../v1-6
bzr update // get to the state of v1-6 head. will merge the contents from trunk on top of that
bzr revert // to undo the merge and get a clean v1-6 head state
bzr unbind // free the branch
Well, that's my findings so far.