Hi,
In the Everyday commands[1], there is an example of of extracting a
tarball and then working with it. I'm finding that I'm doing this fairly
often -- I was just wondering if anyone had anything like a
'git-inject-tarball' script they'd written up.
Thanks,
Anand
[1]: http://www.kernel.org/pub/software/scm/git/docs/everyday.html
Hi,
On Wed, 28 Dec 2005, Anand Kumria wrote:
Hi,
In the Everyday commands[1], there is an example of of extracting a
tarball and then working with it. I'm finding that I'm doing this fairly
often -- I was just wondering if anyone had anything like a
'git-inject-tarball' script they'd written up.
Something like this?
-- snip --
#!/bin/sh
TARFILE="$1"
test -z "$TARFILE" && TARFILE=-
git-ls-files -z | xargs -0 rm
tar xvf "$TARFILE" | xargs git add
git-update-index --remove $(git-ls-files)
-- snap --
Notes:
- this updates the index to match the given tarfile, you still
have to commit yourself
- it does not handle compressed tarfiles (you have to do something
like "cat bla.tar.gz | gzip -d | sh git-untar.sh")
- it does not remove empty directories (i.e. if the current index
contains a file "a/b", and the tarfile does not, and the
directory "a" is now empty, this is not handled)
- usually, tarfiles contain files inside a subdirectory. There is
no facility to strip the subdirectory
Hth,
Dscho
Hi,
Johannes Schindelin wrote:
Something like this?
-- snip --
#!/bin/sh
TARFILE="$1"
test -z "$TARFILE" && TARFILE=-
git-ls-files -z | xargs -0 rm
tar xvf "$TARFILE" | xargs git add
git-update-index --remove $(git-ls-files)
-- snap --
Well, the most important thing for such a tool IMO would be that it
wouldn't overwrite any uncommitted changes, so it's not as trivial as it
seems.
Simon
Hi,
On Wed, 28 Dec 2005, Simon Richter wrote:
Well, the most important thing for such a tool IMO would be that it wouldn't
overwrite any uncommitted changes, so it's not as trivial as it seems.
Ah, but that's easy:
test -z "$(git-diff-index --name-only HEAD)" || exit 1
(This is just the idea; you should also output an error message.)
Hth,
Dscho