/git-archive-all

A python script wrapper for git-archive that archives a git superproject and its submodules, if it has any. Takes into account .gitattributes

Primary LanguagePythonMIT LicenseMIT

PyPI Homebrew
Supported Python implementations Supported Python versions
Travis Coverage

Archive a repository with all its submodules.

git-archive-all [-v] [-C BASE_REPO] [--prefix PREFIX] [--no-export-ignore] [--force-submodules] [--include EXTRA1 ...] [--dry-run] [-0 | ... | -9] OUTPUT_FILE

Options:

  --version             show program's version number and exit

  -h, --help            show this help message and exit

  -v, --verbose         enable verbose mode

  --prefix=PREFIX       prepend PREFIX to each filename in the archive;
                        defaults to OUTPUT_FILE name

  -C BASE_REPO          use BASE_REPO as the main git repository to archive;
                        defaults to the current directory when empty

  --no-export-ignore    ignore the [-]export-ignore attribute in .gitattributes

  --force-submodules    force `git submodule init && git submodule update` at
                        each level before iterating submodules

  --include=EXTRA       additional files to include in the archive

  --dry-run             show files to be archived without actually creating the archive

Questions & Answers

Q: How to exclude files?
A: Mark paths you want to exclude in the .gitattributes file with the export-ignore attribute. Read more on git-scm.com.
Q: What about non-unicode filenames?
A: All filenames that particular version of Python can represent and handle are supported. Extra [en|de]coding is done where appropriate.

Support

If functional you need is missing but you're ready to pay for it, feel free to contact me. If not, create an issue anyway, I'll take a look as soon as I can.