Bazaar Export Command Not Handling Long Path Names

John Arbash Meinel john at arbash-meinel.com
Thu May 22 14:57:58 BST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Andrew Cowie wrote:
| On Wed, 2008-05-21 at 12:49 -0500, John Arbash Meinel wrote:
|> You can always 'bzr export ../directory; cd ..; tar cvjf directory.tar.bz2
|> directory'
|
| Yeah, close to what we do when we do `make dist`. This allows us to
| remove a few things that just don't need to be in the tarball we
| release.
|
| (didn't know about the length limitation)
|
|
| Our Makefile target is something like this:
|
| dist: all
| 	@echo -e "CHECK    fully committed state"
| 	bzr diff > /dev/null || kaboom
|
| 	@echo -e "EXPORT   tmp/java-gnome-$(VERSION)"
| 	-rm -rf tmp/java-gnome-$(VERSION)
| 	bzr export --format=dir tmp/java-gnome-$(VERSION)
|
| 	@echo -e "RM       non essential files"
| 	rm -r tmp/java-gnome-$(VERSION)/lib
| 	rm -r tmp/java-gnome-$(VERSION)/web
| 	rm    tmp/java-gnome-$(VERSION)/.aspell.en.pws
|
| 	@echo -e "TAR     java-gnome-$(VERSION).tar.bz2"
| 	tar cjf java-gnome-$(VERSION).tar.bz2 -C tmp java-gnome-$(VERSION)
| 	rm -r tmp/java-gnome-$(VERSION)
|
|
| (where $VERSION is something we have our ./configure script populate
| into the .config that is sourced by the Makefile)
|
| We do the export into a directory in tmp/ and then use the `tar ... -C
| tmp` idiom to switch there first so that all the paths in the .tar.bz2
| are projectname-version/* , since that is Good Form in open source
| release engineering terms.

Sure. It is actually something that 'bzr export --format=tar' also supports. I
believe it takes the basename of the export file, sans extension. So doing:

bzr export ../releases/foo-1.5.tar.gz

will export the files to

foo-1.5/bzr
foo-1.5/Makefile

etc.

We've talked about the ability to add filtering to export. However for bzr
itself, we need to be able to *add* files. Specifically we run 'make' so that we
will have access to the '*.c' files.

Sort of like running automake/autoconf for a released tarball. (AIUI, people who
use the full system don't version their Makefile.in files, or their 'configure'
script, but build all of that as part of 'make dist'.)

|
| AfC
| Sydney
|

I suppose tarballs can be appended to. So you *could* create a tarball with bzr
export foo.tar and then just append the extra files you need into it. Exporting
to a directory works a bit better, though.

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkg1e+YACgkQJdeBCYSNAAOzgQCfRczNyZHoewCPxDv9MEI5xLuz
wwkAoMOFwLU/KHj5c+rmdonqJaZRtVZ9
=zgcc
-----END PGP SIGNATURE-----



More information about the bazaar mailing list