(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git svn dcommit handles merges">)} spids: [13] ) ] spids: [13] ) (C {(.)} {(./lib-git-svn.sh)}) (FuncDef name: big_text_block body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("#\n") ("# (C) Copyright 2000 - 2005\n") ("# Wolfgang Denk, DENX Software Engineering, wd@denx.de.\n") ("#\n") ("# See file CREDITS for list of people who contributed to this\n") ("# project.\n") ("#\n") ("# This program is free software; you can redistribute it and/or\n") ("# modify it under the terms of the GNU General Public License as\n") ("# published by the Free Software Foundation; either version 2 of\n") ("# the License, or (at your option) any later version.\n") ("#\n") ("# This program is distributed in the hope that it will be useful,\n") ("# but WITHOUT ANY WARRANTY; without even the implied warranty of\n") ("# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\tSee the\n") ("# GNU General Public License for more details.\n") ("#\n") ("# You should have received a copy of the GNU General Public License\n") ("# along with this program; if not, write to the Free Software\n") ("# Foundation, Inc., 59 Temple Place, Suite 330, Boston,\n") ("# MA 02111-1307 USA\n") ("#\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [33] ) ] ) ] spids: [29] ) spids: [24 28] ) (C {(test_expect_success)} {(SQ <"setup svn repository">)} { (SQ <"\n"> <"\tsvn_cmd co \"$svnrepo\" mysvnwork &&\n"> <"\tmkdir -p mysvnwork/trunk &&\n"> <"\t(\n"> <"\t\tcd mysvnwork &&\n"> <"\t\tbig_text_block >>trunk/README &&\n"> <"\t\tsvn_cmd add trunk &&\n"> <"\t\tsvn_cmd ci -m \"first commit\" trunk\n"> <"\t)\n"> <"\t"> ) } ) (C {(test_expect_success)} {(SQ <"setup git mirror and merge">)} { (SQ <"\n"> <"\tgit svn init \"$svnrepo\" -t tags -T trunk -b branches &&\n"> <"\tgit svn fetch &&\n"> <"\tgit checkout -b svn remotes/origin/trunk &&\n"> <"\tgit checkout -b merge &&\n"> <"\techo new file > new_file &&\n"> <"\tgit add new_file &&\n"> <"\tgit commit -a -m \"New file\" &&\n"> <"\techo hello >> README &&\n"> <"\tgit commit -a -m \"hello\" &&\n"> <"\techo add some stuff >> new_file &&\n"> <"\tgit commit -a -m \"add some stuff\" &&\n"> <"\tgit checkout svn &&\n"> <"\tmv -f README tmp &&\n"> <"\techo friend > README &&\n"> <"\tcat tmp >> README &&\n"> <"\tgit commit -a -m \"friend\" &&\n"> <"\tgit merge merge\n"> <"\t"> ) } ) (C {(test_debug)} {(SQ <"gitk --all & sleep 1">)}) (C {(test_expect_success)} {(SQ <"verify pre-merge ancestry">)} { (DQ ("\n") ("\ttest x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/heads/svn^2) = ") ("\t x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/heads/merge) &&\n") ("\tgit cat-file commit refs/heads/svn^ | grep '^friend") (Lit_Other "$") ("'\n") ("\t") ) } ) (C {(test_expect_success)} {(SQ <"git svn dcommit merges">)} {(DQ ("\n") ("\tgit svn dcommit\n") ("\t"))} ) (C {(test_debug)} {(SQ <"gitk --all & sleep 1">)}) (C {(test_expect_success)} {(SQ <"verify post-merge ancestry">)} { (DQ ("\n") ("\ttest x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/heads/svn) = ") ("\t x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/remotes/origin/trunk) &&\n") ("\ttest x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/heads/svn^2) = ") ("\t x") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("(git rev-parse --verify refs/heads/merge) &&\n") ("\tgit cat-file commit refs/heads/svn^ | grep '^friend") (Lit_Other "$") ("'\n") ("\t") ) } ) (C {(test_expect_success)} {(SQ <"verify merge commit message">)} { (DQ ("\n") ("\tgit rev-list --pretty=raw -1 refs/heads/svn | ") ("\t grep ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" Merge branch 'merge' into svn") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ("\n") ("\t") ) } ) (C {(test_done)}) ] )