Subject: git-ls-new-files & make patch, pull, etc.

From: Jeff Carr <[email-masked]>
Date: Mon, 22 Aug 2005 19:07:13 -0700

Something simple like the perl script at the bottom would be useful for
showing files that haven't been added via git-update-cache --add already.

I've also found it useful to start adding things to the Makefile's of
the projects I'm putting in git repositories. I think it would be useful
to come up with some standard or recommended names. That could start to
extend the common "make" "make install" with a few other options for
projects that use git as their SCM.

Thanks,
Jeff

patch:
	git-diff-files -p

push:
	git-send-pack `cat .git/branches/origin`

pull:
	git-pull-script `cat .git/branches/origin`
	git-read-tree -m HEAD
	git-checkout-cache -q -f -u -a

commit:
	vi changelog.txt
	GIT_AUTHOR_NAME="$(GIT_AUTHOR_NAME)" \
	GIT_AUTHOR_EMAIL="$(GIT_AUTHOR_EMAIL)" \
	git-commit-tree `git-write-tree` -p $(HEAD) < changelog.txt > .git/HEAD
	rm changelog.txt

add_all:
	./git-ls-new-files |xargs -n 1 git-update-cache --add

#!/usr/bin/perl

# Shows you what files have not been added to your git repository

my %allfiles;

# make a hash of all the files except the .git/ directory

foreach my $file ( `find . -type f` ) {
	chomp $file;
	next if substr($file, 0, 7) eq "./.git/";
	$allfiles{ $file } = "";
}

# now delete all the files from the hash that are already commited

foreach my $file ( split "\n", `git-ls-files` ) {
	chomp $file;
	delete $allfiles{ "./$file" };
}

# print out what's left

foreach my $file ( sort keys %allfiles ) {
	print "$file\n";
}