• Stars
    star
    198
  • Rank 196,898 (Top 4 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created over 14 years ago
  • Updated almost 11 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

bi-directional git to bzr bridge: never fear bzr again

Git-Bzr-NG or How I Learned to Stop Worrying and Love the Code

git-bzr-ng is a bidirectional bridge between git and bzr that lets you stop worrying which version control the code you love is using -- as long as they are using git or bzr ;) (hg coming soon?).

Easy to use and cleanly written (I hope (send patches!)). Check out the examples below for basic usage.

Example usage

Clone a launchpad repo

$ git bzr clone lp:nova nova

$ cd nova
$ git branch -a

# result ->
#   bzr/master
# * master

Make a new branch

$ git checkout -b touch_branch

$ echo "TOUCH" >> README
$ git commit -a -m "touch touch"
$ git bzr push lp:~termie/nova/touch_branch

Now you've got a cool new branch up on a server!
Go ahead and do some more work and push again.
It will go to the same place, and much faster now.

$ echo "TOUCH" >> README
$ git commit -a -m "touch touch"
$ git bzr push

How is trunk doing?
Sync is a slow operation the first time, like push.
They both speed up after they've done it once for a given branch.

$ git checkout master
$ git bzr sync
$ git diff bzr/master

Somebody else has a patch and you want to test it locally.

$ git bzr import lp:~vishvananda/nova/fix-part fix-part
$ git diff touch_branch

Like those changes? Pull them into your own branch and push them
$ git checkout touch_branch
$ git pull . -- fix-part
$ git bzr push

See test.sh for even more examples. Please try it out and report any issues to the github tracker at http://github.com/termie/git-bzr-ng/issues so we can sort them out quickly.

Extra Notes

I've tried to keep you from doing anything too weird, but since it is git I am sure you can figure out someway to mess stuff up, so if you somehow manage to push weird data to your bzr/* branches, you can always force an overwrite with:

$ git bzr sync --overwrite bzr/nova

It won't do anything to any branch except the one mentioned and on that one it effectively does a bzr pull --overwrite.

Requirements

Troubleshooting

For other issues, please see: http://github.com/termie/git-bzr-ng/issues

don't use bzr 2.3b

If you see

AttributeError: 'BTreeBuilder' object has no attribute '_find_ancestors'

it means you have the bzr 2.3 beta installed, git-bzr-ng currently works unpatched with bzr 2.2 and bzr 2.3.0. It is possible to patch bzr 2.3b to correct the issue, but 2.3.0 is easy to install with pip.

tests run against multiple versions

If you are running the tests (python run_tests.py) keep in mind that one set of tests is actually running against bzr-fastimport's HEAD so it doesn't always work, so if you see failures check that they are in GitBzrTest or GitBzrStableTarballTest first.

when all else fails: git bzr clear

Additionally there is a command git bzr clear that will wipe out the bzr-related information for a given branch so if you have somehow found yourself in a bind, it should help you wipe the slate to try again.

Kind thanks to

More Repositories

1

node-osc

[ DEPRECATED: Now maintained by https://github.com/TheAlphaNerd/node-osc ] OSC protocol library for Node.js
JavaScript
52
star
2

go-shutil

golang port of python's shutil - copy a directory in go
Go
46
star
3

lp2gh

launchpad to github migration tool
Python
18
star
4

corewarjs

A Core War implementation in Javascript.
C
17
star
5

keystonelight

DEPRECATED This has been merged into http://github.com/openstack/keystone please refer to that
Python
13
star
6

visivotab

Beautiful photos hand-selected by Flickr's visivo for your New Tab
11
star
7

finality

the last words of the executed
JavaScript
8
star
8

urbsville

environmental hardware control via javascript
JavaScript
7
star
9

farmboy

rapid deployment of development environments for developers
Python
7
star
10

node-unittest

An xUnit implementation for node.js based on Python's unittest
JavaScript
6
star
11

jibot

an old ircbot for the #joiito channel on freenode
Python
5
star
12

zombie

Python
5
star
13

termie-env

my cross-platform env setup... hope there's nothing secret in here
Vim Script
4
star
14

openstack-dashboard

Python
4
star
15

govenv

The simplest, loveliest virtualenv tool for Go
Python
4
star
16

nova-lite

the newer, betterer nova
4
star
17

wercker

wercker source code archive
Go
4
star
18

devstache

additional web ui for devstack
Python
3
star
19

rietveld-mirror

a mirror of the rietveld svn repo
Python
3
star
20

fabric-gitlab

Fabric installation for gitlab 5
Ruby
3
star
21

fizzjik

device automation in twisted
Python
2
star
22

screamphone

JavaScript
2
star
23

granny

2
star
24

colorize

randomly colored off-black backgrounds for your iterm2
Python
2
star
25

node-jsmock

node.js-ified version of jsmock for use in unittesting
JavaScript
2
star
26

shred

super tiny drop-in replacement for the basic crap in paste.deploy
Python
2
star
27

ocl

Oculus (Openstack Client Lite)
Python
2
star
28

shipdaily

Site to track daily shipping.
Ruby
2
star
29

pyconfi-deck

presentation from pycon finland
2
star
30

nova-migration-demo

Nova is a cloud computing fabric controller (the main part of an IaaS system). It is written in Python.
Python
2
star
31

pupa

openstack nova-based skeletal starter project
Python
1
star
32

nova_ocl_autogen

Auto-generate Nova API definitions for use with OCL
Python
1
star
33

can_haz

1
star
34

deploy.sh

Shell script to setup a openstack builder environment
Shell
1
star
35

bootprint

1
star
36

hflags

Extended python-gflags
Python
1
star
37

wevver

Brute force race-condition search
Python
1
star
38

grow

a go web framework
Go
1
star
39

php-oauth-reference

original reference implementation of php-oauth from http://code.google.com/p/oauth
PHP
1
star