mirror of
https://github.com/git/git.git
synced 2026-04-04 05:50:14 +02:00
Merge branch 'master' of git://repo.or.cz/alt-git
This commit is contained in:
@@ -459,6 +459,28 @@ EOF
|
||||
|
||||
test_expect_success "rename succeeded" "test_cmp expect .git/config"
|
||||
|
||||
cat >> .git/config << EOF
|
||||
[branch "vier"] z = 1
|
||||
EOF
|
||||
|
||||
test_expect_success "rename a section with a var on the same line" \
|
||||
'git config --rename-section branch.vier branch.zwei'
|
||||
|
||||
cat > expect << EOF
|
||||
# Hallo
|
||||
#Bello
|
||||
[branch "zwei"]
|
||||
x = 1
|
||||
[branch "zwei"]
|
||||
y = 1
|
||||
[branch "drei"]
|
||||
weird
|
||||
[branch "zwei"]
|
||||
z = 1
|
||||
EOF
|
||||
|
||||
test_expect_success "rename succeeded" "test_cmp expect .git/config"
|
||||
|
||||
cat >> .git/config << EOF
|
||||
[branch "zwei"] a = 1 [branch "vier"]
|
||||
EOF
|
||||
|
||||
80
t/t3414-rebase-preserve-onto.sh
Executable file
80
t/t3414-rebase-preserve-onto.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2009 Greg Price
|
||||
#
|
||||
|
||||
test_description='git rebase -p should respect --onto
|
||||
|
||||
In a rebase with --onto, we should rewrite all the commits that
|
||||
aren'"'"'t on top of $ONTO, even if they are on top of $UPSTREAM.
|
||||
'
|
||||
. ./test-lib.sh
|
||||
|
||||
. ../lib-rebase.sh
|
||||
|
||||
# Set up branches like this:
|
||||
# A1---B1---E1---F1---G1
|
||||
# \ \ /
|
||||
# \ \--C1---D1--/
|
||||
# H1
|
||||
|
||||
test_expect_success 'setup' '
|
||||
test_commit A1 &&
|
||||
test_commit B1 &&
|
||||
test_commit C1 &&
|
||||
test_commit D1 &&
|
||||
git reset --hard B1 &&
|
||||
test_commit E1 &&
|
||||
test_commit F1 &&
|
||||
test_merge G1 D1 &&
|
||||
git reset --hard A1 &&
|
||||
test_commit H1
|
||||
'
|
||||
|
||||
# Now rebase merge G1 from both branches' base B1, both should move:
|
||||
# A1---B1---E1---F1---G1
|
||||
# \ \ /
|
||||
# \ \--C1---D1--/
|
||||
# \
|
||||
# H1---E2---F2---G2
|
||||
# \ /
|
||||
# \--C2---D2--/
|
||||
|
||||
test_expect_success 'rebase from B1 onto H1' '
|
||||
git checkout G1 &&
|
||||
git rebase -p --onto H1 B1 &&
|
||||
test "$(git rev-parse HEAD^1^1^1)" = "$(git rev-parse H1)" &&
|
||||
test "$(git rev-parse HEAD^2^1^1)" = "$(git rev-parse H1)"
|
||||
'
|
||||
|
||||
# On the other hand if rebase from E1 which is within one branch,
|
||||
# then the other branch stays:
|
||||
# A1---B1---E1---F1---G1
|
||||
# \ \ /
|
||||
# \ \--C1---D1--/
|
||||
# \ \
|
||||
# H1-----F3-----G3
|
||||
|
||||
test_expect_success 'rebase from E1 onto H1' '
|
||||
git checkout G1 &&
|
||||
git rebase -p --onto H1 E1 &&
|
||||
test "$(git rev-parse HEAD^1^1)" = "$(git rev-parse H1)" &&
|
||||
test "$(git rev-parse HEAD^2)" = "$(git rev-parse D1)"
|
||||
'
|
||||
|
||||
# And the same if we rebase from a commit in the second-parent branch.
|
||||
# A1---B1---E1---F1----G1
|
||||
# \ \ \ /
|
||||
# \ \--C1---D1-\-/
|
||||
# \ \
|
||||
# H1------D3------G4
|
||||
|
||||
test_expect_success 'rebase from C1 onto H1' '
|
||||
git checkout G1 &&
|
||||
git rev-list --first-parent --pretty=oneline C1..G1 &&
|
||||
git rebase -p --onto H1 C1 &&
|
||||
test "$(git rev-parse HEAD^2^1)" = "$(git rev-parse H1)" &&
|
||||
test "$(git rev-parse HEAD^1)" = "$(git rev-parse F1)"
|
||||
'
|
||||
|
||||
test_done
|
||||
@@ -154,7 +154,9 @@ create_patch () {
|
||||
index e69de29..8bd6648 100644
|
||||
--- a/target
|
||||
+++ b/target
|
||||
@@ -0,0 +1 @@
|
||||
@@ -0,0 +1,3 @@
|
||||
+An empty line follows
|
||||
+
|
||||
+A line with trailing whitespace and no newline_
|
||||
\ No newline at end of file
|
||||
EOF
|
||||
@@ -162,8 +164,10 @@ create_patch () {
|
||||
|
||||
test_expect_success 'trailing whitespace & no newline at the end of file' '
|
||||
>target &&
|
||||
create_patch | git apply --whitespace=fix - &&
|
||||
grep "newline$" target
|
||||
create_patch >patch-file &&
|
||||
git apply --whitespace=fix patch-file &&
|
||||
grep "newline$" target &&
|
||||
grep "^$" target
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -149,5 +149,17 @@ test_expect_success 'local packed unreachable obs that exist in alternate ODB ar
|
||||
test_must_fail git show $csha1
|
||||
'
|
||||
|
||||
test_expect_success 'objects made unreachable by grafts only are kept' '
|
||||
test_tick &&
|
||||
git commit --allow-empty -m "commit 4" &&
|
||||
H0=$(git rev-parse HEAD) &&
|
||||
H1=$(git rev-parse HEAD^) &&
|
||||
H2=$(git rev-parse HEAD^^) &&
|
||||
echo "$H0 $H2" > .git/info/grafts &&
|
||||
git reflog expire --expire=now --expire-unreachable=now --all &&
|
||||
git repack -a -d &&
|
||||
git cat-file -t $H1
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ test_description='git blame encoding conversion'
|
||||
. ./test-lib.sh
|
||||
|
||||
. "$TEST_DIRECTORY"/t8005/utf8.txt
|
||||
. "$TEST_DIRECTORY"/t8005/iso8859-5.txt
|
||||
. "$TEST_DIRECTORY"/t8005/euc-japan.txt
|
||||
. "$TEST_DIRECTORY"/t8005/sjis.txt
|
||||
|
||||
test_expect_success 'setup the repository' '
|
||||
@@ -13,10 +13,10 @@ test_expect_success 'setup the repository' '
|
||||
git add file &&
|
||||
git commit --author "$UTF8_NAME <utf8@localhost>" -m "$UTF8_MSG" &&
|
||||
|
||||
echo "ISO-8859-5 LINE" >> file &&
|
||||
echo "EUC-JAPAN LINE" >> file &&
|
||||
git add file &&
|
||||
git config i18n.commitencoding ISO8859-5 &&
|
||||
git commit --author "$ISO8859_5_NAME <iso8859-5@localhost>" -m "$ISO8859_5_MSG" &&
|
||||
git config i18n.commitencoding eucJP &&
|
||||
git commit --author "$EUC_JAPAN_NAME <euc-japan@localhost>" -m "$EUC_JAPAN_MSG" &&
|
||||
|
||||
echo "SJIS LINE" >> file &&
|
||||
git add file &&
|
||||
@@ -41,17 +41,17 @@ test_expect_success \
|
||||
'
|
||||
|
||||
cat >expected <<EOF
|
||||
author $ISO8859_5_NAME
|
||||
summary $ISO8859_5_MSG
|
||||
author $ISO8859_5_NAME
|
||||
summary $ISO8859_5_MSG
|
||||
author $ISO8859_5_NAME
|
||||
summary $ISO8859_5_MSG
|
||||
author $EUC_JAPAN_NAME
|
||||
summary $EUC_JAPAN_MSG
|
||||
author $EUC_JAPAN_NAME
|
||||
summary $EUC_JAPAN_MSG
|
||||
author $EUC_JAPAN_NAME
|
||||
summary $EUC_JAPAN_MSG
|
||||
EOF
|
||||
|
||||
test_expect_success \
|
||||
'blame respects i18n.logoutputencoding' '
|
||||
git config i18n.logoutputencoding ISO8859-5 &&
|
||||
git config i18n.logoutputencoding eucJP &&
|
||||
git blame --incremental file | \
|
||||
egrep "^(author|summary) " > actual &&
|
||||
test_cmp actual expected
|
||||
@@ -76,8 +76,8 @@ test_expect_success \
|
||||
cat >expected <<EOF
|
||||
author $SJIS_NAME
|
||||
summary $SJIS_MSG
|
||||
author $ISO8859_5_NAME
|
||||
summary $ISO8859_5_MSG
|
||||
author $EUC_JAPAN_NAME
|
||||
summary $EUC_JAPAN_MSG
|
||||
author $UTF8_NAME
|
||||
summary $UTF8_MSG
|
||||
EOF
|
||||
|
||||
2
t/t8005/euc-japan.txt
Normal file
2
t/t8005/euc-japan.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
EUC_JAPAN_NAME="<22><><EFBFBD><EFBFBD> <20><>Ϻ"
|
||||
EUC_JAPAN_MSG="<22>֥졼<D6A5><ECA1BC><EFBFBD>Υƥ<CEA5><C6A5>ȤǤ<C8A4><C7A4><EFBFBD>"
|
||||
@@ -1,2 +1,2 @@
|
||||
SJIS_NAME="<22>I<EFBFBD>r<EFBFBD>p<EFBFBD>~ <20>P<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>y<EFBFBD><79> <20>R<EFBFBD>y<EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r"
|
||||
SJIS_MSG="<22>S<EFBFBD>u<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD><EFBFBD>u <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71><EFBFBD>u<EFBFBD>~<7E>y<EFBFBD>u"
|
||||
SJIS_NAME="<22>R<EFBFBD>c <20><><EFBFBD>Y"
|
||||
SJIS_MSG="<22>u<EFBFBD><75><EFBFBD>[<EFBFBD><EFBFBD><EFBFBD>̃e<EFBFBD>X<EFBFBD>g<EFBFBD>ł<EFBFBD><EFBFBD>B"
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
UTF8_NAME="Иван Петрович Сидоров"
|
||||
UTF8_MSG="Тестовое сообщение"
|
||||
UTF8_NAME="山田 太郎"
|
||||
UTF8_MSG="ブレームのテストです。"
|
||||
|
||||
32
t/t9142-git-svn-shallow-clone.sh
Executable file
32
t/t9142-git-svn-shallow-clone.sh
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2009 Eric Wong
|
||||
#
|
||||
|
||||
test_description='git svn shallow clone'
|
||||
. ./lib-git-svn.sh
|
||||
|
||||
test_expect_success 'setup test repository' '
|
||||
svn_cmd mkdir -m "create standard layout" \
|
||||
"$svnrepo"/trunk "$svnrepo"/branches "$svnrepo"/tags &&
|
||||
svn_cmd cp -m "branch off trunk" \
|
||||
"$svnrepo"/trunk "$svnrepo"/branches/a &&
|
||||
svn_cmd co "$svnrepo"/branches/a &&
|
||||
(
|
||||
cd a &&
|
||||
> foo &&
|
||||
svn_cmd add foo &&
|
||||
svn_cmd commit -m "add foo"
|
||||
)
|
||||
'
|
||||
|
||||
start_httpd
|
||||
|
||||
test_expect_success 'clone trunk with "-r HEAD"' '
|
||||
git svn clone -r HEAD "$svnrepo/trunk" g &&
|
||||
( cd g && git rev-parse --symbolic --verify HEAD )
|
||||
'
|
||||
|
||||
stop_httpd
|
||||
|
||||
test_done
|
||||
53
t/t9143-git-svn-gc.sh
Executable file
53
t/t9143-git-svn-gc.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2009 Robert Allan Zeh
|
||||
|
||||
test_description='git svn gc basic tests'
|
||||
|
||||
. ./lib-git-svn.sh
|
||||
|
||||
test_expect_success 'setup directories and test repo' '
|
||||
mkdir import &&
|
||||
mkdir tmp &&
|
||||
echo "Sample text for Subversion repository." > import/test.txt &&
|
||||
svn_cmd import -m "import for git svn" import "$svnrepo" > /dev/null
|
||||
'
|
||||
|
||||
test_expect_success 'checkout working copy from svn' \
|
||||
'svn_cmd co "$svnrepo" test_wc'
|
||||
|
||||
test_expect_success 'set some properties to create an unhandled.log file' '
|
||||
(
|
||||
cd test_wc &&
|
||||
svn_cmd propset foo bar test.txt &&
|
||||
svn_cmd commit -m "property set"
|
||||
)'
|
||||
|
||||
test_expect_success 'Setup repo' 'git svn init "$svnrepo"'
|
||||
|
||||
test_expect_success 'Fetch repo' 'git svn fetch'
|
||||
|
||||
test_expect_success 'make backup copy of unhandled.log' '
|
||||
cp .git/svn/git-svn/unhandled.log tmp
|
||||
'
|
||||
|
||||
test_expect_success 'create leftover index' '> .git/svn/git-svn/index'
|
||||
|
||||
test_expect_success 'git svn gc runs' 'git svn gc'
|
||||
|
||||
test_expect_success 'git svn index removed' '! test -f .git/svn/git-svn/index'
|
||||
|
||||
if perl -MCompress::Zlib -e 0 2>/dev/null
|
||||
then
|
||||
test_expect_success 'git svn gc produces a valid gzip file' '
|
||||
gunzip .git/svn/git-svn/unhandled.log.gz
|
||||
'
|
||||
else
|
||||
say "Perl Compress::Zlib unavailable, skipping gunzip test"
|
||||
fi
|
||||
|
||||
test_expect_success 'git svn gc does not change unhandled.log files' '
|
||||
test_cmp .git/svn/git-svn/unhandled.log tmp/unhandled.log
|
||||
'
|
||||
|
||||
test_done
|
||||
@@ -262,6 +262,94 @@ test_expect_success 'cope with tagger-less tags' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'setup for limiting exports by PATH' '
|
||||
mkdir limit-by-paths &&
|
||||
cd limit-by-paths &&
|
||||
git init &&
|
||||
echo hi > there &&
|
||||
git add there &&
|
||||
git commit -m "First file" &&
|
||||
echo foo > bar &&
|
||||
git add bar &&
|
||||
git commit -m "Second file" &&
|
||||
git tag -a -m msg mytag &&
|
||||
echo morefoo >> bar &&
|
||||
git add bar &&
|
||||
git commit -m "Change to second file" &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
cat > limit-by-paths/expected << EOF
|
||||
blob
|
||||
mark :1
|
||||
data 3
|
||||
hi
|
||||
|
||||
reset refs/tags/mytag
|
||||
commit refs/tags/mytag
|
||||
mark :2
|
||||
author A U Thor <author@example.com> 1112912713 -0700
|
||||
committer C O Mitter <committer@example.com> 1112912713 -0700
|
||||
data 11
|
||||
First file
|
||||
M 100644 :1 there
|
||||
|
||||
EOF
|
||||
|
||||
test_expect_success 'dropping tag of filtered out object' '
|
||||
cd limit-by-paths &&
|
||||
git fast-export --tag-of-filtered-object=drop mytag -- there > output &&
|
||||
test_cmp output expected &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
cat >> limit-by-paths/expected << EOF
|
||||
tag mytag
|
||||
from :2
|
||||
tagger C O Mitter <committer@example.com> 1112912713 -0700
|
||||
data 4
|
||||
msg
|
||||
|
||||
EOF
|
||||
|
||||
test_expect_success 'rewriting tag of filtered out object' '
|
||||
cd limit-by-paths &&
|
||||
git fast-export --tag-of-filtered-object=rewrite mytag -- there > output &&
|
||||
test_cmp output expected &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
cat > limit-by-paths/expected << EOF
|
||||
blob
|
||||
mark :1
|
||||
data 4
|
||||
foo
|
||||
|
||||
blob
|
||||
mark :2
|
||||
data 3
|
||||
hi
|
||||
|
||||
reset refs/heads/master
|
||||
commit refs/heads/master
|
||||
mark :3
|
||||
author A U Thor <author@example.com> 1112912713 -0700
|
||||
committer C O Mitter <committer@example.com> 1112912713 -0700
|
||||
data 12
|
||||
Second file
|
||||
M 100644 :1 bar
|
||||
M 100644 :2 there
|
||||
|
||||
EOF
|
||||
|
||||
test_expect_failure 'no exact-ref revisions included' '
|
||||
cd limit-by-paths &&
|
||||
git fast-export master~2..master~1 > output &&
|
||||
test_cmp output expected &&
|
||||
cd ..
|
||||
'
|
||||
|
||||
|
||||
test_expect_success 'set-up a few more tags for tag export tests' '
|
||||
git checkout -f master &&
|
||||
HEAD_TREE=`git show -s --pretty=raw HEAD | grep tree | sed "s/tree //"` &&
|
||||
@@ -271,8 +359,14 @@ test_expect_success 'set-up a few more tags for tag export tests' '
|
||||
git tag -a tag-obj_tag-obj -m "tagging a tag" tree_tag-obj
|
||||
'
|
||||
|
||||
test_expect_success 'tree_tag' '
|
||||
mkdir result &&
|
||||
(cd result && git init) &&
|
||||
git fast-export tree_tag > fe-stream &&
|
||||
(cd result && git fast-import < ../fe-stream)
|
||||
'
|
||||
|
||||
# NEEDSWORK: not just check return status, but validate the output
|
||||
test_expect_success 'tree_tag' 'git fast-export tree_tag'
|
||||
test_expect_success 'tree_tag-obj' 'git fast-export tree_tag-obj'
|
||||
test_expect_success 'tag-obj_tag' 'git fast-export tag-obj_tag'
|
||||
test_expect_success 'tag-obj_tag-obj' 'git fast-export tag-obj_tag-obj'
|
||||
|
||||
Reference in New Issue
Block a user