out of date error committing to a bound branch

Bug #658395 reported by Gerard Murphy
This bug report is a duplicate of:  Bug #702870: out of date error when pushing to svn. Edit Remove
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
Triaged
Medium
Unassigned

Bug Description

I have a Bazaar checkout of a Subversion branch hosted at Googlecode.

(http://sageserpent-open.googlecode.com/svn/trunk)

I have been trying to merge / pull changes on a third branch on to the checkout branch - in both cases, this fails because bzr thinks that this would require a rewrite of the mainline branch, and I had 'append_revisions_only' set to 'True'.

(NOTE: this is already puzzling because AFAICT the checkout was up to date with the Subversion branch prior to doing the merge or pull in both cases, and my changes on the third branch were descendants of the tip of the Subversion branch I was merging / pulling on to).

Anyway, I changed the configuration in 'bazaar.conf' to set 'append_revisions_only' to 'False' as a default and tried pulling again.

The following shell transcript should illustrate the problem:-

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr status

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr log -r-5..
------------------------------------------------------------
revno: 142
committer: Gerard Murphy <email address hidden>
branch nick: splayTreeOptimisation
timestamp: Sat 2010-09-18 18:43:22 +0100
message:
  Another tidy-up in preparation for refactoring to split the ternary search tree into a mutually recursive composite tree data structure, which in turn will hopefully allow easy implementation of splaying.
------------------------------------------------------------
revno: 141
committer: Gerard Murphy <email address hidden>
branch nick: splayTreeOptimisation
timestamp: Sat 2010-09-18 13:53:01 +0100
message:
  Trivial code reformatting plus removal of some tramp data passed around during test level removal that was previously useful for debugging failures but is now redundant.
------------------------------------------------------------
revno: 140 [merge]
committer: Gerard Murphy <email address hidden>
branch nick: workingBranch
timestamp: Thu 2010-09-09 20:08:36 +0100
message:
  Merged in support for singleton test case values and optimisation of merged partial test vector representations.
------------------------------------------------------------
revno: 139
committer: Gerard Murphy <email address hidden>
branch nick: workingBranch
timestamp: Sun 2010-05-23 22:32:01 +0100
message:
  Reformatted C# source file.
------------------------------------------------------------
revno: 138 [merge]
committer: Gerard Murphy <email address hidden>
branch nick: workingBranch
timestamp: Sun 2010-05-23 17:01:38 +0100
message:
  Merged in fixes and cutovers from branch pipeline: now has some support for test value singletons and fixes for the merged partial test vector representation.
------------------------------------------------------------
Use --include-merges or -n0 to see merged revisions.
[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr update
Tree is up to date at revision 142 of branch https://sageserpent-open.googlecode.com/svn/trunk

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr update
Tree is up to date at revision 142 of branch https://sageserpent-open.googlecode.com/svn/trunk

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr pull --local ../pipelineOverWorkBranches M development/solution/SageSerpent.Infrastructure/BargainBasement.fs
 M development/solution/SageSerpent.TestInfrastructure.Tests/NodeTests.fs
 M development/solution/SageSerpent.TestInfrastructure.Tests/TestCaseEnumeratorFactoryTests.fs
 M development/solution/SageSerpent.TestInfrastructure/InterleavedTestCaseEnumerableFactory.fs
 M development/solution/SageSerpent.TestInfrastructure/MergedPartialTestVectorRepresentations.fs
 M development/solution/SageSerpent.TestInfrastructure/Node.fs
 M development/solution/SageSerpent.TestInfrastructure/SynthesizedTestCaseEnumerableFactory.fs
 M development/solution/SageSerpent.TestInfrastructure/TestCaseEnumerableFactoryCommonImplementation.fs
All changes applied successfully.
Now on revision 150.

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr log -r-5..
------------------------------------------------------------
revno: 150
committer: Gerard Murphy <email address hidden>
branch nick: sentinelCrossProduct
timestamp: Sun 2010-10-10 19:59:54 +0100
message:
  Now systematically generating all combinations of non-interleaved singleton test variables. This is done without regard of the desired combination strength, which still applies only to test variables with levels.
------------------------------------------------------------
revno: 149
committer: Gerard Murphy <email address hidden>
branch nick: useMapKeyedByTestVariableCombinationStrength
timestamp: Thu 2010-10-07 08:58:01 +0100
message:
  Now storing test variable combinations at a given strength in an association list entry keyed by that strength. This makes it a lot easier to follow how strenghs are built up recursively from subtrees, and also allows a transition to supporting zero-strengths for test variable singleton values.
------------------------------------------------------------
revno: 148
committer: Gerard Murphy <email address hidden>
branch nick: splayTreeOptimisation
timestamp: Tue 2010-09-28 23:31:18 +0100
message:
  Now using splaying to implement the process of splicing out a nearest neighbour when removing a level that has two non-empty subtrees.
------------------------------------------------------------
revno: 147
committer: Gerard Murphy <email address hidden>
branch nick: splayTreeOptimisation
timestamp: Tue 2010-09-28 20:52:05 +0100
message:
  Removed invariant and post condition checks for the time being.
------------------------------------------------------------
revno: 146
committer: Gerard Murphy <email address hidden>
branch nick: splayTreeOptimisation
timestamp: Tue 2010-09-28 20:12:51 +0100
message:
  Now splaying on addition as well was successful removal of a level to / from a binary tree of levels.

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr commit -m "Merged in optimisation of merged partial test vector representation (using splaying) and systematic generation of combinations of singleton test variables." --verbose
bzr: ERROR: Bound branch BzrBranch7(file:///Users/gerardMurphy/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode/) is out of date with master branch SvnBranch('https://sageserpent-open.googlecode.com/svn/trunk').
To commit to master branch, run update and then commit.
You can also pass --local to commit to continue working disconnected.

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr update
All changes applied successfully.
Updated to revision 142 of branch https://sageserpent-open.googlecode.com/svn/trunk
Your local commits will now show as pending merges with 'bzr status', and can be committed with 'bzr commit'.

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr status
modified:
  development/solution/SageSerpent.Infrastructure/BargainBasement.fs
  development/solution/SageSerpent.TestInfrastructure.Tests/NodeTests.fs
  development/solution/SageSerpent.TestInfrastructure.Tests/TestCaseEnumeratorFactoryTests.fs
  development/solution/SageSerpent.TestInfrastructure/InterleavedTestCaseEnumerableFactory.fs
  development/solution/SageSerpent.TestInfrastructure/MergedPartialTestVectorRepresentations.fs
  development/solution/SageSerpent.TestInfrastructure/Node.fs
  development/solution/SageSerpent.TestInfrastructure/SynthesizedTestCaseEnumerableFactory.fs
  development/solution/SageSerpent.TestInfrastructure/TestCaseEnumerableFactoryCommonImplementation.fs
pending merge tips: (use -v to see all merge revisions)
  Gerard Murphy 2010-10-10 Now systematically generating all combinations of non-interleaved singleton test variables. This is done without regard of the desired combination strength, which still applies only to test variables with levels.

[ ~/Documents/SageSerpent/bzrRepository/checkoutOfTrunkFromGoogleCode]$ bzr commit -m "Merged in optimisation of merged partial test vector representation (using splaying) and systematic generation of combinations of singleton test variables." --verbose
Committing to: https://sageserpent-open.googlecode.com/svn/trunk
modified development/solution/SageSerpent.Infrastructure/BargainBasement.fs
modified development/solution/SageSerpent.TestInfrastructure/InterleavedTestCaseEnumerableFactory.fs
modified development/solution/SageSerpent.TestInfrastructure/MergedPartialTestVectorRepresentations.fs
modified development/solution/SageSerpent.TestInfrastructure/Node.fs
modified development/solution/SageSerpent.TestInfrastructure/SynthesizedTestCaseEnumerableFactory.fs
modified development/solution/SageSerpent.TestInfrastructure/TestCaseEnumerableFactoryCommonImplementation.fs
modified development/solution/SageSerpent.TestInfrastructure.Tests/NodeTests.fs
modified development/solution/SageSerpent.TestInfrastructure.Tests/TestCaseEnumeratorFactoryTests.fs
bzr: ERROR: subvertpy.SubversionException: ("File or directory '.' is out of date; try updating", 160024)

Traceback (most recent call last):
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 912, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 1112, in run_bzr
    ret = run(*run_argv)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 690, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 705, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 3200, in run
    exclude=safe_relpath_files(tree, exclude))
  File "/Library/Python/2.6/site-packages/bzrlib/decorators.py", line 194, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/workingtree_4.py", line 197, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/decorators.py", line 194, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/mutabletree.py", line 201, in commit
    *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/commit.py", line 286, in commit
    possible_master_transports=possible_master_transports)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 131, in run
    self.cleanups, self.func, self, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/Library/Python/2.6/site-packages/bzrlib/commit.py", line 448, in _commit
    self.branch.repository, new_revno, self.rev_id)
  File "/Users/gerardMurphy/.bazaar/plugins/svn/branch.py", line 554, in import_last_revision_info
    self.get_push_merged_revisions(), overwrite=False)
  File "/Users/gerardMurphy/.bazaar/plugins/svn/push.py", line 217, in push_branch
    overwrite=overwrite)
  File "/Users/gerardMurphy/.bazaar/plugins/svn/push.py", line 239, in push
    override_svn_revprops=target_config.get_override_svn_revprops())
  File "/Users/gerardMurphy/.bazaar/plugins/svn/push.py", line 153, in push_revision_tree
    revid = builder.commit(rev.message)
  File "/Users/gerardMurphy/.bazaar/plugins/svn/errors.py", line 146, in convert
    raise convert_error(e)
SubversionException: ("File or directory '.' is out of date; try updating", 160024)

bzr 2.2.1 on python 2.6.1 (Darwin-10.4.0-i386-64bit)
arguments: ['/usr/local/bin/bzr', 'commit', '-m', 'Merged in optimisation of merged partial test vector representation (using splaying) and systematic generation of combinations of singleton test variables.', '--verbose']
encoding: 'UTF-8', fsenc: 'utf-8', lang: 'en_GB.UTF-8'
plugins:
  bash_completion /Library/Python/2.6/site-packages/bzrlib/plugins/bash_completion [2.2.1]
  bzrtools /Library/Python/2.6/site-packages/bzrlib/plugins/bzrtools [2.2.0]
  colo /Library/Python/2.6/site-packages/bzrlib/plugins/colo [0.1.0]
  email /Library/Python/2.6/site-packages/bzrlib/plugins/email [unknown]
  explorer /Library/Python/2.6/site-packages/bzrlib/plugins/explorer [1.1.0dev2]
  extmerge /Library/Python/2.6/site-packages/bzrlib/plugins/extmerge [unknown]
  fastimport /Library/Python/2.6/site-packages/bzrlib/plugins/fastimport [0.9.0dev]
  keychain /Library/Python/2.6/site-packages/bzrlib/plugins/keychain [0.1.0]
  launchpad /Library/Python/2.6/site-packages/bzrlib/plugins/launchpad [2.2.1]
  loom /Library/Python/2.6/site-packages/bzrlib/plugins/loom [2.2.1dev]
  netrc_credential_store /Library/Python/2.6/site-packages/bzrlib/plugins/netrc_credential_store [2.2.1]
  news_merge /Library/Python/2.6/site-packages/bzrlib/plugins/news_merge [2.2.1]
  pipeline /Library/Python/2.6/site-packages/bzrlib/plugins/pipeline [unknown]
  qbzr /Library/Python/2.6/site-packages/bzrlib/plugins/qbzr [0.19.1]
  rewrite /Library/Python/2.6/site-packages/bzrlib/plugins/rewrite [0.6.0]
  svn /Users/gerardMurphy/.bazaar/plugins/svn [1.0.5dev]
  upload /Library/Python/2.6/site-packages/bzrlib/plugins/upload [1.0.0dev]
  xmloutput /Library/Python/2.6/site-packages/bzrlib/plugins/xmloutput [0.8.6]

*** Bazaar has encountered an internal error. This probably indicates a
    bug in Bazaar. You can help us fix it by filing a bug report at
        https://bugs.launchpad.net/bzr/+filebug
    including this traceback and a description of the problem.

NOTE: as additional information, the third branch 'pipelineOverWorkBranches' is a checkout of a pipeline stage according to the bzr-pipeline plugin.

My setup is Bazaar 2.2.1 under MacOSX with bzr-svn obtained as an explicit plugin from the Launchpad branch 'lp:bzr-svn svn'.

This seems related to the discussion at the end of bug #118787.

Revision history for this message
Gerard Murphy (g-j-murphy) wrote :

NOTE: I have 'push_merged_revisions' set to 'True' in my 'subversion.conf' file in addition to the setting for 'append_revisions_only' described above, if this is relevant.

Revision history for this message
Gerard Murphy (g-j-murphy) wrote :

More information, and a workaround:-

1. It appears that each attempt (I made several) to commit the local changes back up to Subversion was trying to recreate one of the pipeline stages referred to by the third branch.

2. The workaround was to define a fourth branch that was *not* a checkout, merge from the pipeline checkout (the 'third branch' referred to above) into the fourth branch, then to pull from the fourth branch on to the Subversion checkout - furthermore I could do this directly without using the '--local' option when pulling. This got my changes from the pipeline into both the Subversion checkout and the underlying Subversion branch.

Jelmer Vernooij (jelmer)
summary: - bzr-svn crashes when attempting to commit local changes on checkout
+ out of date error committing to a bound branch
Changed in bzr-svn:
status: New → Triaged
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.