1. Augie Fackler
  2. hgsubversion
  3. Issues
Issue #23 resolved

Can't push complex changesets

Valentino Volonghi
created an issue

I have a pretty big changeset that I need to push but somehow during the push a path is changed, the action on the file where everything breaks is 'modify'.

{{{ trunk/adroll/backend/monitor trunk/adroll/backend/monitor trunk/adroll/backend/monitor/init.py trunk/adroll/backend/monitor/base.py trunk/adroll/backend/taskman/main.py unknown exception encountered, details follow report bug details to http://www.selenic.com/mercurial/bts or mercurial@selenic.com Mercurial Distributed SCM (version 45495d784ad6+20081029) Extensions loaded: churn, color, convert, gpg, hgk, imerge, mq, patchbomb, rebase, record, svn, transplant Traceback (most recent call last): File "/Users/dialtone/bin/hg", line 14, in <module> mercurial.dispatch.run() File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 20, in run sys.exit(dispatch(sys.argv[1:])) File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 29, in dispatch return _runcatch(u, args) File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 45, in _runcatch return _dispatch(ui, args) File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 367, in _dispatch ret = _runcommand(ui, options, cmd, d) File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 420, in _runcommand return checkargs() File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 376, in checkargs return cmdfunc() File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 359, in <lambda> d = lambda: func(ui, repo, *args, cmdoptions) File "/Users/dialtone/dev/hgsubversion/init.py", line 8, in svn return svncommand.svncmd(ui, repo, subcommand, args, opts) File "/Users/dialtone/dev/hgsubversion/svncommand.py", line 39, in svncmd opts) File "/Users/dialtone/dev/hgsubversion/push_cmd.py", line 44, in push_revisions_to_subversion commit_from_rev(ui, repo, old_ctx, hge, svn_url, base_revision) File "/Users/dialtone/dev/hgsubversion/push_cmd.py", line 146, in commit_from_rev base_revision, set(added_dirs), props) File "/Users/dialtone/dev/hgsubversion/svnwrap/svn_swig_wrapper.py", line 327, in commit self.pool) File "/opt/local/lib/svn-python/libsvn/delta.py", line 495, in svn_delta_path_driver return apply(_delta.svn_delta_path_driver, args) File "/Users/dialtone/dev/hgsubversion/svnwrap/svn_swig_wrapper.py", line 324, in driver_cb editor.close_file(baton, None, pool) File "/opt/local/lib/svn-python/libsvn/delta.py", line 442, in close_file return svn_delta_editor_invoke_close_file(self, args) File "/opt/local/lib/svn-python/libsvn/delta.py", line 656, in svn_delta_editor_invoke_close_file return apply(_delta.svn_delta_editor_invoke_close_file, args) svn.core.SubversionException: ("File not found: transaction '5090-8', path '/adhere/trunk/adroll/backend/monitor/taskman/main.py'", 160013) }}}

At the top of the traceback there are the paths of the files being committed to svn (obtained with a print at the beginning of driver_cb). If you look carefully you can see that the last path at the top is: => trunk/adroll/backend/taskman/main.py while at the bottom it tries to commit: => /adhere/trunk/adroll/backend/monitor/taskman/main.py

It's completely different and gained an extra 'monitor' segment that shouldn't have been there.

Comments (2)

  1. Log in to comment