{"thread":{"id":"3408","subject":"[PATCH 9/9] git-svn: 0.9.1: add --version and copyright/license (GPL v2+) information","startedAt":"2006-02-20T18:57:29Z","lastAt":"2006-02-20T18:57:29Z","messageCount":2,"participants":["Eric Wong"],"isPatch":true,"patchVersion":1,"patchTotal":9},"messages":[{"id":"16468","messageId":"11404618492226-git-send-email-normalperson@yhbt.net","threadId":"3408","inReplyTo":"11404618491275-git-send-email-normalperson@yhbt.net","subject":"[PATCH 9/9] git-svn: 0.9.1: add --version and copyright/license (GPL v2+) information","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2006-02-20T18:57:29Z","receivedAt":"2006-02-20T18:57:29Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Signed-off-by: Eric Wong <normalperson@yhbt.net>\n\n---\n\n contrib/git-svn/git-svn.perl |   13 +++++++++++--\n 1 files changed, 11 insertions(+), 2 deletions(-)\n\n372473c658e9f48323430af003f8a1a887989edf\ndiff --git a/contrib/git-svn/git-svn.perl b/contrib/git-svn/git-svn.perl\nindex 3a59454..a32ce15 100755\n--- a/contrib/git-svn/git-svn.perl\n+++ b/contrib/git-svn/git-svn.perl\n@@ -1,4 +1,6 @@\n #!/usr/bin/env perl\n+# Copyright (C) 2006, Eric Wong <normalperson@yhbt.net>\n+# License: GPL v2 or later\n use warnings;\n use strict;\n use vars qw/\t$AUTHOR $VERSION\n@@ -6,7 +8,7 @@ use vars qw/\t$AUTHOR $VERSION\n \t\t$GIT_SVN_INDEX $GIT_SVN\n \t\t$GIT_DIR $REV_DIR/;\n $AUTHOR = 'Eric Wong <normalperson@yhbt.net>';\n-$VERSION = '0.9.0';\n+$VERSION = '0.9.1';\n $GIT_DIR = $ENV{GIT_DIR} || \"$ENV{PWD}/.git\";\n $GIT_SVN = $ENV{GIT_SVN_ID} || 'git-svn';\n $GIT_SVN_INDEX = \"$GIT_DIR/$GIT_SVN/index\";\n@@ -31,7 +33,7 @@ use File::Spec qw//;\n my $sha1 = qr/[a-f\\d]{40}/;\n my $sha1_short = qr/[a-f\\d]{6,40}/;\n my ($_revision,$_stdin,$_no_ignore_ext,$_no_stop_copy,$_help,$_rmdir,$_edit,\n-\t$_find_copies_harder, $_l);\n+\t$_find_copies_harder, $_l, $_version);\n \n GetOptions(\t'revision|r=s' => \\$_revision,\n \t\t'no-ignore-externals' => \\$_no_ignore_ext,\n@@ -41,6 +43,7 @@ GetOptions(\t'revision|r=s' => \\$_revisio\n \t\t'help|H|h' => \\$_help,\n \t\t'find-copies-harder' => \\$_find_copies_harder,\n \t\t'l=i' => \\$_l,\n+\t\t'version|V' => \\$_version,\n \t\t'no-stop-on-copy' => \\$_no_stop_copy );\n my %cmd = (\n \tfetch => [ \\&fetch, \"Download new revisions from SVN\" ],\n@@ -66,6 +69,7 @@ foreach (keys %cmd) {\n \t}\n }\n usage(0) if $_help;\n+version() if $_version;\n usage(1) unless (defined $cmd);\n svn_check_ignore_externals();\n $cmd{$cmd}->[0]->(@ARGV);\n@@ -91,6 +95,11 @@ and want to keep them separate.\n \texit $exit;\n }\n \n+sub version {\n+\tprint \"git-svn version $VERSION\\n\";\n+\texit 0;\n+}\n+\n sub rebuild {\n \t$SVN_URL = shift or undef;\n \tmy $repo_uuid;\n-- \n1.2.0.gdee6\n"},{"id":"16469","messageId":"11404618491275-git-send-email-normalperson@yhbt.net","threadId":"3408","inReplyTo":"11404618483587-git-send-email-normalperson@yhbt.net","subject":"[PATCH 8/9] contrib/git-svn: add Makefile, test, and associated ignores","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2006-02-20T18:57:29Z","receivedAt":"2006-02-20T18:57:29Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Signed-off-by: Eric Wong <normalperson@yhbt.net>\n\n---\n\n contrib/git-svn/.gitignore                 |    4 +\n contrib/git-svn/Makefile                   |   32 ++++\n contrib/git-svn/git-svn.perl               |    0 \n contrib/git-svn/t/t0000-contrib-git-svn.sh |  216 ++++++++++++++++++++++++++++\n 4 files changed, 252 insertions(+), 0 deletions(-)\n create mode 100644 contrib/git-svn/.gitignore\n create mode 100644 contrib/git-svn/Makefile\n rename contrib/git-svn/{git-svn => git-svn.perl} (100%)\n create mode 100644 contrib/git-svn/t/t0000-contrib-git-svn.sh\n\n1f5de0dcbe26fedb3236c437808d2cb20ab282c1\ndiff --git a/contrib/git-svn/.gitignore b/contrib/git-svn/.gitignore\nnew file mode 100644\nindex 0000000..d8d87e3\n--- /dev/null\n+++ b/contrib/git-svn/.gitignore\n@@ -0,0 +1,4 @@\n+git-svn\n+git-svn.xml\n+git-svn.html\n+git-svn.1\ndiff --git a/contrib/git-svn/Makefile b/contrib/git-svn/Makefile\nnew file mode 100644\nindex 0000000..a330c61\n--- /dev/null\n+++ b/contrib/git-svn/Makefile\n@@ -0,0 +1,32 @@\n+all: git-svn\n+\n+prefix?=$(HOME)\n+bindir=$(prefix)/bin\n+mandir=$(prefix)/man\n+man1=$(mandir)/man1\n+INSTALL?=install\n+doc_conf=../../Documentation/asciidoc.conf\n+-include ../../config.mak\n+\n+git-svn: git-svn.perl\n+\tcp $< $@\n+\tchmod +x $@\n+\n+install: all\n+\t$(INSTALL) -d -m755 $(DESTDIR)$(bindir)\n+\t$(INSTALL) git-svn $(DESTDIR)$(bindir)\n+\n+install-doc: doc\n+\t$(INSTALL) git-svn.1 $(DESTDIR)$(man1)\n+\n+doc: git-svn.1\n+git-svn.1 : git-svn.xml\n+\txmlto man git-svn.xml\n+git-svn.xml : git-svn.txt\n+\tasciidoc -b docbook -d manpage \\\n+\t\t-f ../../Documentation/asciidoc.conf $<\n+test:\n+\tcd t && $(SHELL) ./t0000-contrib-git-svn.sh\n+\n+clean:\n+\trm -f git-svn *.xml *.html *.1\ndiff --git a/contrib/git-svn/git-svn b/contrib/git-svn/git-svn.perl\nsimilarity index 100%\nrename from contrib/git-svn/git-svn\nrename to contrib/git-svn/git-svn.perl\ndiff --git a/contrib/git-svn/t/t0000-contrib-git-svn.sh b/contrib/git-svn/t/t0000-contrib-git-svn.sh\nnew file mode 100644\nindex 0000000..181dfe0\n--- /dev/null\n+++ b/contrib/git-svn/t/t0000-contrib-git-svn.sh\n@@ -0,0 +1,216 @@\n+#!/bin/sh\n+#\n+# Copyright (c) 2006 Eric Wong\n+#\n+\n+\n+PATH=$PWD/../:$PATH\n+test_description='git-svn tests'\n+if test -d ../../../t\n+then\n+    cd ../../../t\n+else\n+    echo \"Must be run in contrib/git-svn/t\" >&2\n+    exit 1\n+fi\n+\n+. ./test-lib.sh\n+\n+GIT_DIR=$PWD/.git\n+GIT_SVN_DIR=$GIT_DIR/git-svn\n+SVN_TREE=$GIT_SVN_DIR/tree\n+\n+svnadmin >/dev/null 2>&1\n+if test $? != 1\n+then\n+    test_expect_success 'skipping contrib/git-svn test' :\n+    test_done\n+    exit\n+fi\n+\n+svn >/dev/null 2>&1\n+if test $? != 1\n+then\n+    test_expect_success 'skipping contrib/git-svn test' :\n+    test_done\n+    exit\n+fi\n+\n+svnrepo=$PWD/svnrepo\n+\n+set -e\n+\n+svnadmin create $svnrepo\n+svnrepo=\"file://$svnrepo/test-git-svn\"\n+\n+mkdir import\n+\n+cd import\n+\n+echo foo > foo\n+ln -s foo foo.link\n+mkdir -p dir/a/b/c/d/e\n+echo 'deep dir' > dir/a/b/c/d/e/file\n+mkdir -p bar\n+echo 'zzz' > bar/zzz\n+echo '#!/bin/sh' > exec.sh\n+chmod +x exec.sh\n+svn import -m 'import for git-svn' . $svnrepo >/dev/null\n+\n+cd ..\n+\n+rm -rf import\n+\n+test_expect_success \\\n+    'initialize git-svn' \\\n+    \"git-svn init $svnrepo\"\n+\n+test_expect_success \\\n+    'import an SVN revision into git' \\\n+    'git-svn fetch'\n+\n+\n+name='try a deep --rmdir with a commit'\n+git checkout -b mybranch git-svn-HEAD\n+mv dir/a/b/c/d/e/file dir/file\n+cp dir/file file\n+git update-index --add --remove dir/a/b/c/d/e/file dir/file file\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch &&\n+     test -d $SVN_TREE/dir && test ! -d $SVN_TREE/dir/a\"\n+\n+\n+name='detect node change from file to directory #1'\n+mkdir dir/new_file\n+mv dir/file dir/new_file/file\n+mv dir/new_file dir/file\n+git update-index --remove dir/file\n+git update-index --add dir/file/file\n+git commit -m \"$name\"\n+\n+test_expect_code 1 \"$name\" \\\n+    'git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch' \\\n+    || true\n+\n+\n+name='detect node change from directory to file #1'\n+rm -rf dir $GIT_DIR/index\n+git checkout -b mybranch2 git-svn-HEAD\n+mv bar/zzz zzz\n+rm -rf bar\n+mv zzz bar\n+git update-index --remove -- bar/zzz\n+git update-index --add -- bar\n+git commit -m \"$name\"\n+\n+test_expect_code 1 \"$name\" \\\n+    'git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch2' \\\n+    || true\n+\n+\n+name='detect node change from file to directory #2'\n+rm -f $GIT_DIR/index\n+git checkout -b mybranch3 git-svn-HEAD\n+rm bar/zzz\n+git-update-index --remove bar/zzz\n+mkdir bar/zzz\n+echo yyy > bar/zzz/yyy\n+git-update-index --add bar/zzz/yyy\n+git commit -m \"$name\"\n+\n+test_expect_code 1 \"$name\" \\\n+    'git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch3' \\\n+    || true\n+\n+\n+name='detect node change from directory to file #2'\n+rm -f $GIT_DIR/index\n+git checkout -b mybranch4 git-svn-HEAD\n+rm -rf dir\n+git update-index --remove -- dir/file\n+touch dir\n+echo asdf > dir\n+git update-index --add -- dir\n+git commit -m \"$name\"\n+\n+test_expect_code 1 \"$name\" \\\n+    'git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch4' \\\n+    || true\n+\n+\n+name='remove executable bit from a file'\n+rm -f $GIT_DIR/index\n+git checkout -b mybranch5 git-svn-HEAD\n+chmod -x exec.sh\n+git update-index exec.sh\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch5 &&\n+     test ! -x $SVN_TREE/exec.sh\"\n+\n+\n+name='add executable bit back file'\n+chmod +x exec.sh\n+git update-index exec.sh\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch5 &&\n+     test -x $SVN_TREE/exec.sh\"\n+\n+\n+\n+name='executable file becomes a symlink to bar/zzz (file)'\n+rm exec.sh\n+ln -s bar/zzz exec.sh\n+git update-index exec.sh\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch5 &&\n+     test -L $SVN_TREE/exec.sh\"\n+\n+\n+\n+name='new symlink is added to a file that was also just made executable'\n+chmod +x bar/zzz\n+ln -s bar/zzz exec-2.sh\n+git update-index --add bar/zzz exec-2.sh\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch5 &&\n+     test -x $SVN_TREE/bar/zzz &&\n+     test -L $SVN_TREE/exec-2.sh\"\n+\n+\n+\n+name='modify a symlink to become a file'\n+git help > help || true\n+rm exec-2.sh\n+cp help exec-2.sh\n+git update-index exec-2.sh\n+git commit -m \"$name\"\n+\n+test_expect_success \"$name\" \\\n+    \"git-svn commit --find-copies-harder --rmdir git-svn-HEAD..mybranch5 &&\n+     test -f $SVN_TREE/exec-2.sh &&\n+     test ! -L $SVN_TREE/exec-2.sh &&\n+     diff -u help $SVN_TREE/exec-2.sh\"\n+\n+\n+\n+name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'\n+GIT_SVN_ID=alt\n+export GIT_SVN_ID\n+test_expect_success \"$name\" \\\n+    \"git-svn init $svnrepo && git-svn fetch -v &&\n+     git-rev-list --pretty=raw git-svn-HEAD | grep ^tree | uniq > a &&\n+     git-rev-list --pretty=raw alt-HEAD | grep ^tree | uniq > b &&\n+     diff -u a b\"\n+\n+test_done\n+\n-- \n1.2.0.gdee6\n"}]}