Question

Does anyone know an easy way of exporting an Accurev 'depot' and its full history to, for example, git or mercurial? Or even via a 3rd party system? Unless I'm missing the obvious, I can't find anything via google.

If not, a bonus question, is it possible to build a git/mercurial repository based on patches with specific timestamps? In other words, just make accurev dump its history as a set of patches and import them into a repository.

Was it helpful?

Solution

Check out ac2git, a much more fully-featured Python conversion tool than ryan-laneve's accurev2git although we credit him with the original concept.

OTHER TIPS

@jtalbott is definitely correct regarding the difficulty in fully converting the history of an AccuRev depot into another SCM, including git. However, if you're willing to live with converting a single stream (be it your depot's "root" stream or any other stream you decide to use as the conversion basis), have a look at https://github.com/rlaneve/accurev2git/. Note that is a very, very naive implementation, will take quite a bit of time for any sizable depot, and will thrash your hard drive excessively during the conversion. But, it does work, and I've used it to convert at least a couple of dozen AccuRev depots into git repositories.

Disclaimer: I wrote the tool a couple of years ago because I couldn't find an existing tool.

Your best bet in moving to another tool is going to be extracts from streams (or snapshots) and importing into the other tool. You won't have transactional annotate, log, etc, but you'll be able to build up history that way, and keep AccuRev around in case you need to go check something that wasn't specifically migrated.

AccuRev's Timesafe architecture guarantees that the requisite history is available to you, but much like migrating into AccuRev is traditionally done with baseline imports, I'd suspect that your cost/benefit ratio in doing the reverse wouldn't ever lead to full history as an option.

Since the AccuRev paradigm is different from traditional branch-and-label tools, it would be a challenge to export a full history from an AccuRev depot into any other tool. The data is certainly accessible from AccuRev's side, but you'd have to write a comprehensive, logical extraction routine to pull it into another system. Anything that's been done by anyone else is probably very customized to their specific needs. A baseline export, using point-in-time configurations from AccuRev streams would be more feasible and straightforward.

May I ask what the end goal is? Would it be full migration away from AccuRev or are you just looking to be able to have users or teams make use of Git as a client instead of AccuRev? I bring this up because AccuRev just recently introduced a full Git integration platform called Kando. You can read about it yourself, but it might be what you're looking for.

Regards, ~James

AC2GIT conversion is one of the best conversion tool i have seen when it comes to accurev to git migration. very stable https://github.com/orao/ac2git

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top