GitXplorerGitXplorer
x

git-subundle

public
8 stars
0 forks
0 issues

Commits

List of commits on branch master.
Unverified
deaa74e2431737335092bd3add3654e014e1edcb

Tell we should delete *.bundle file in the README example

xxeyownt committed 5 years ago
Unverified
529d487ce7d66519dff36eb2191753791025384e

Add an example in README

xxeyownt committed 5 years ago
Unverified
67e8f7bc45ba44ffa6ad31cf658a28d99f291a14

Fix missing flags in usage text

xxeyownt committed 5 years ago
Unverified
f4a1bc8667be94b69270f5c01f97ad6bf015386b

Add option '-w' to temp fix pathspec mismatch issue

xxeyownt committed 5 years ago
Unverified
0ba9b48ad8a8a178bd45ba0efb831454a5126683

Add a 'force' option to overwrite remote URL

xxeyownt committed 7 years ago
Unverified
6bb9c1178971ac833b9f476557853598b9fa4198

Fix help text

xxeyownt committed 7 years ago

README

The README file for this repository.

git subundle

A wrapper around git bundle that supports bundling repositories with submodules.

Install

Just run make install as root. Basically, you just have to install the script git-subundle somewhere in your path

Usage

Check git subundle -h for usage:

NAME
        git subundle - Create bundle including submodules.

SYNOPSYS
        git subundle [-h] [-b <name>] create [REPOSITORY] [BUNDLE_FILE]
        git subundle [-h] [-b <name>] unbundle [REPOSITORY] [BUNDLE_FILE]
        git subundle [-h] [-b <name>] reset [REPOSITORY]

DESCRIPTION
        Create bundle 'BUNDLE_FILE.bundle' that contains also submodules.

        -b <name>
                Use <name> as bundle remote name. If omitted, the default
                remote name is 'bundle'.

        -h
                Print this help.

        -d
                Debug output.

SEE ALSO
        git-bundle(1).

Example

  • First create a bundle on the source PC. This assumes a git repository named repo:

    # On first PC
    git subundle create repo
    tar czf bundle.tgz *.bundle
    rm *.bundle
  • Transfer bundle.tgz to remote PC. Then:

    # On remote PC
    tar xf bundle.tgz
    git subundle -f unbundle repo
    rm bundle.tgz *.bundle
  • After creating some commit on the remote PC, we transfer back the changes to the source PC. This will only transfer the new commits

    # On remote PC
    git subundle create repo
    tar czf bundle.tgz *.bundle
    rm *.bundle
  • We import the changes on the source PC. From that point on, creating a new bundle on the source PC will only include new commits not available on the remote PC

    # On source PC
    tar xf bundle.tgz
    git subundle -f unbundle repo
    rm bundle.tgz *.bundle

Tests

The package come with some basic tests. Run make test to run them.