Wireshark-dev: [Wireshark-dev] Accessing Wireshark SVN using Bazaar
From: Evan Huus <eapache@xxxxxxxxx>
Date: Mon, 24 Sep 2012 22:23:04 -0400
This topic came up off-list and someone asked for a brief cheat-sheet / tutorial / explanation of what I currently use, so here it is. This email is more about the various version-control systems (SVN, Git, etc.) that manage Wireshark's source than it is about Wireshark itself, so if you're perfectly happy with the existing subversion setup you can stop reading here. -- First a bit of background for those who are new to the topic. Wireshark's source is currently managed using Subversion (SVN), and has been ever since the migration from CVS long before I knew what Wireshark even was. The current subversion tree can be browsed at [1]. Subversion is a mature, widely-respected tool. In the years since SVN was designed and originally developed, a new model of version-control system has been invented, known as the Distributed Version Control System. This model is typified by Git and Mercurial, two popular open-source DVCS tools. The DVCS model provides several advantages which are well-enumerated on the relevant Wikipedia article [2]. For just under a year now, Wireshark's code has also been available in a read-only Git repository, viewable at [3]. I have been a big fan of DVCS tools for a while now, and so for some time I would do my work in a read-only Git version of the source and then copy my changes over to SVN in order to commit. Obviously, that wasn't ideal. There is a program (git plugin?) called git-svn that in theory allows you to access a remote SVN repository as if it were a Git repository. I've never been able to get it to work, but if somebody has steps to follow for Wireshark, I'd be glad to hear them. There is another DVCS program (less popular than Git or Mercurial, but gaining ground now thanks to its use in Ubuntu) called Bazaar [4]. It also has a plugin (called bzr-svn [5]) for transparently accessing SVN repositories which I found quite easy to use. Both the Bazaar program and the bzr-svn plugin are available in the Ubuntu repositories, and are almost certainly in Debian/Fedora/etc. as well, though I haven't checked. Windows and Mac users can get it at [6]. Once installed, you can get the wireshark source as follows: $ bzr init-repo wireshark $ cd wireshark $ bzr checkout svn+http://anonsvn.wireshark.org/wireshark/trunk/ WARNING: the last command will take a *long* time (~24 hours I think, although I haven't formally timed it), as it has to fetch each SVN revision separately to build the local history. Once complete, however, normal operations are just as fast (if not faster) than they are in SVN. NOTE: Devs with commit access should use the normal writable url, just prepend "svn+" as I did for the read-only url. With that done, you now have a working checkout in wireshark/trunk. You can treat it just like an SVN copy except you replace 'svn' commands with 'bzr' commands, so the majority of your time will be spent doing 'bzr update', 'bzr commit', 'bzr status', 'bzr diff', etc.. With a checkout like this, bzr treats the remote server just like SVN does - there's no need to worry about the complications of pushing and pulling and merging any more than normal. To convert it to a more Git-style checkout (where the main operations are push/pull/commit/merge instead of just update/commit) simply run 'bzr unbind' (to convert back to an SVN-style checkout, just run 'bzr bind'). I won't go into the details of using bazaar's advanced DCVS features here (it's very similar to Git and Mercurial, and the documentation is quite good), but this should be enough to kickstart anyone who is interested. I will of course do my best to answer questions anyone might have, but no guarantees. Wow, this email ended up being a bit longer than I'd anticipated :) Cheers, Evan [1] https://anonsvn.wireshark.org/viewvc/ [2] https://en.wikipedia.org/wiki/Distributed_revision_control [3] http://code.wireshark.org/git/wireshark [4] http://bazaar.canonical.com/en/ [5] http://doc.bazaar.canonical.com/beta/en/user-guide/svn_plugin.html [6] http://wiki.bazaar.canonical.com/Download
- Prev by Date: Re: [Wireshark-dev] [Wireshark-commits] rev 45116: /trunk/ /trunk/: Makefile.nmake config.nmake
- Next by Date: [Wireshark-dev] RRC filters
- Previous by thread: Re: [Wireshark-dev] [Wireshark-commits] rev 45116: /trunk/ /trunk/: Makefile.nmake config.nmake
- Next by thread: [Wireshark-dev] RRC filters
- Index(es):