2

I'm trying to backup my shared bzr repository. I have looked at bzr export hotcopy.tgz but it seems only to take a snapshot of the latest revision.

Is there a command for doing backups, or do I have to

  1. full checkout into a tmp dir
  2. compress the tmp dir
  3. remove the tmp dir

Or is there a better way to backup a bzr repository?

Matthew
  • 28,056
  • 26
  • 104
  • 170
neoneye
  • 50,398
  • 25
  • 166
  • 151

1 Answers1

2

You could try something like this:

mkdir /tmp/emptyrepos && bzr init /tmp/emptyrepos && bzr send -r 1..last:1 -o - /tmp/emptyrepos | gzip > mybackup.bzr.gz

That will create a bazaar native format merge-directive which you could apply to an empty repository to re-create all state.

Alternatively, it's likely safe to just tar up the current checkout. The on-disk format should be designed to safely deal with partial updates you may grab with tar.

Steven Schlansker
  • 37,580
  • 14
  • 81
  • 100
  • When running this command, I'm experiencing this: ERROR: Not a branch: "/private/tmp/". I'm on Mac OS X. The I have tried inserting /private/tmp, but it gives same error. I'm new to bazaar so I don't quite understand the error message yet. – neoneye Dec 29 '09 at 21:28
  • The basic idea is to create an empty branch to diff against - you can make an empty directory somewhere and run bzr init within it; I just used something in /tmp/ because it's a good place to put temporary stuff. That said, are you sure you didn't mistype it? – Steven Schlansker Dec 29 '09 at 21:53
  • Here is the terminal output http://pastebin.im/1408 Thank you very much, but I think I go for the checkout temporary repository instead of using send, since it seems more simple. – neoneye Dec 29 '09 at 23:59
  • Just as a note, to restore a branch backed up in this way, you need to do "bzr init ." then "bzr pull ". Merging into an empty branch is currently not supported (bug https://bugs.launchpad.net/bzr/+bug/82555) but pulling the merge directive will work. Just be sure to extract the merge directive from the .gz file, or else it will say it is not a branch. – mgrandi Nov 09 '12 at 01:33
  • 'bzr send' is slow, not optimized for size, and not tuned to be used for entire repositories. Creating a temporary standalone branch without a tree (" bzr branch --no-tree") is the best way to create the data you need to back up. – jelmer Feb 07 '14 at 00:02