2546
2546
expected_stderr, actual_stderr)
2548
# Now list the txns in the repo. The list should be empty.
2549
exit_code, output, errput = svntest.main.run_svnadmin('lstxns',
2551
svntest.verify.compare_and_display_lines(
2552
"Error running 'svnadmin lstxns'.",
2553
'STDERR', [], errput)
2554
svntest.verify.compare_and_display_lines(
2555
"Output of 'svnadmin lstxns' is unexpected.",
2556
'STDOUT', [], output)
2548
2558
#----------------------------------------------------------------------
2550
2560
def pre_commit_hook_test(sbox):
3011
def commit_deep_deleted(sbox):
3012
"try to commit a deep descendant of a deleted node"
3016
sbox.simple_move('A', 'AA')
3018
sbox.simple_propset('k', 'v', 'AA/D/G')
3020
# Committing some added descendant returns a proper error
3021
expected_err = ('svn: E200009: \'%s\' is not known to exist in the ' +
3022
'repository and is not part of the commit, yet its ' +
3023
'child \'%s\' is part of the commit') % (
3024
re.escape(os.path.abspath(sbox.ospath('AA'))),
3025
re.escape(os.path.abspath(sbox.ospath('AA/D/G'))))
3027
svntest.actions.run_and_verify_commit(sbox.wc_dir,
3031
sbox.ospath('AA/D/G'))
3033
sbox.simple_propdel('k', 'AA/D/G')
3034
sbox.simple_rm('AA/D/G')
3036
# But a delete fails..
3037
# This used to trigger an assertion in Subversion 1.8.0-1.8.8, because
3038
# the status walker couldn't find the repository path for AA/D/G
3039
svntest.actions.run_and_verify_commit(sbox.wc_dir,
3043
sbox.ospath('AA/D/G'))
3045
# And now commit like how a GUI client would do it, but forgetting the move
3046
expected_err = ('svn: E200009: Cannot commit \'%s\' because it was moved ' +
3047
'from \'%s\' which is not part of the commit; both sides ' +
3048
'of the move must be committed together') % (
3049
re.escape(os.path.abspath(sbox.ospath('AA'))),
3050
re.escape(os.path.abspath(sbox.ospath('A'))))
3051
svntest.actions.run_and_verify_commit(sbox.wc_dir,
3056
sbox.ospath('AA/D/G'),
3060
# And now how it works
3061
svntest.actions.run_and_verify_commit(sbox.wc_dir,
3066
sbox.ospath('AA/D/G'),
3071
def commit_mergeinfo_ood(sbox):
3072
"commit of mergeinfo that should cause out of date"
3075
sbox.simple_rm('A', 'iota')
3076
sbox.simple_commit() # r2
3078
sbox.simple_mkdir('trunk', 'branch')
3079
sbox.simple_commit() # r3
3081
sbox.simple_append('trunk/a', 'This is a\n')
3082
sbox.simple_add('trunk/a')
3083
sbox.simple_commit() # r4
3085
sbox.simple_append('trunk/b', 'This is b\n')
3086
sbox.simple_add('trunk/b')
3087
sbox.simple_commit() # r5
3089
sbox.simple_update() # To r5
3092
'--- Merging r4 into \'%s\':\n' % sbox.ospath('branch'),
3093
'A %s\n' % sbox.ospath('branch/a'),
3094
'--- Recording mergeinfo for merge of r4' \
3095
' into \'%s\':\n' % sbox.ospath('branch'),
3096
' U %s\n' % sbox.ospath('branch'),
3098
svntest.actions.run_and_verify_svn(None, expected_output, [],
3099
'merge', '-c4', '^/trunk',
3100
sbox.ospath('branch'))
3102
sbox.simple_commit()
3104
sbox.simple_update(revision='5')
3107
'--- Merging r5 into \'%s\':\n' % sbox.ospath('branch'),
3108
'A %s\n' % sbox.ospath('branch/b'),
3109
'--- Recording mergeinfo for merge of r5 into \'%s\':\n' % sbox.ospath('branch'),
3110
' U %s\n' % sbox.ospath('branch'),
3112
svntest.actions.run_and_verify_svn(None, expected_output, [],
3113
'merge', '-c5', '^/trunk',
3114
sbox.ospath('branch'))
3116
# Currently this commit succeeds with dav over HTTPv2, while it should really fail
3117
expected_err = '.*out of date.*'
3118
svntest.actions.run_and_verify_svn(None, None, expected_err,
3119
'commit', sbox.ospath(''), '-m', 'M')
3003
3121
########################################################################
3004
3122
# Run the tests