Can't push changesets over http or https

Valentino Volonghi avatarValentino Volonghi created an issue
$hg svnclone http://....
$touch foobar
$hg add foobar
$hg commit -m "some changes"
$hg svn outgoing
changeset:   4641:b15ad89c5ef4
branch:      default
tag:         tip
user:        Valentino Volonghi aka dialtone <my@email.com>
date:        Sat Oct 18 10:52:38 2008 -0700
summary:     some changes

$hg svn push
** unknown exception encountered, details follow
** report bug details to http://www.selenic.com/mercurial/bts
** or mercurial@selenic.com
** Mercurial Distributed SCM (version unknown)
** Extensions loaded: churn, color, convert, gpg, 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 366, in _dispatch
    ret = _runcommand(ui, options, cmd, d)
  File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 419, in _runcommand
    return checkargs()
  File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 375, in checkargs
    return cmdfunc()
  File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 358, 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 51, in push_revisions_to_subversion
    assert len(replacement) == 1
AssertionError

I'm using mercurial repo at rev 7094 and latest hgsubversion. Same error if I make a new local branch, then commit the new change there and try to push it.

Comments (8)

  1. Anonymous

    Does this only happen with an empty file? Can you get me a publicly-available set of steps to reproduce?

  2. Valentino Volonghi

    no, this happens with any changeset that I try to make. Unfortunately I've only tried to use hgsubversion on a private repository that I cannot share.

    I don't even have any publicly available svn trees that I can migrate because for my own stuff I already use mercurial. I'm available on #mercurial as a living pdb though.

  3. Valentino Volonghi

    I was using the official distribution for subversion. Now I tried with recompiling subversion 1.5.3 from sources using macports and then compiling the python bindings.

    Unfortunately if I use neon (by setting http-library=neon in /.subversion/servers) it fails in the way above, while if I switch to serf it fails in this new way:

    ** unknown exception encountered, details follow
    ** report bug details to http://www.selenic.com/mercurial/bts
    ** or mercurial@selenic.com
    ** Mercurial Distributed SCM (version unknown)
    ** Extensions loaded: churn, color, convert, gpg, 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 366, in _dispatch
        ret = _runcommand(ui, options, cmd, d)
      File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 419, in _runcommand
        return checkargs()
      File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 375, in checkargs
        return cmdfunc()
      File "/Users/dialtone/dev/mercurial/mercurial/dispatch.py", line 358, 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 42, 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 83, in commit_from_rev
        svn = svnwrap.SubversionRepo(svn_url, username=merc_util.getuser())
      File "/Users/dialtone/dev/hgsubversion/svnwrap/svn_swig_wrapper.py", line 84, in __init__
        self.init_ra_and_client()
      File "/Users/dialtone/dev/hgsubversion/svnwrap/svn_swig_wrapper.py", line 106, in init_ra_and_client
        self.client_context)
      File "/opt/local/lib/svn-python/libsvn/client.py", line 1815, in svn_client_open_ra_session
        return apply(_client.svn_client_open_ra_session, args)
    svn.core.SubversionException: ('Error running context: APR does not understand this error code', 230001)
    

    I can reproduce this with any google code repository. Running on leopard 10.5.5

  4. Valentino Volonghi

    Ok, so error 230001 means that the server side certificate has to be approved by the user. By doing that using the svn client and by repeating the svn push using the serf backend the original error at the top is still there (using the google code dummy svn tree).

    Versions of libraries:

    The commit is created (there are 6 revisions in that tree) but no changeset is attached.

  5. Anonymous

    I've gotten part of this fixed in ce00e6ffaa90 . It now (for me, at least) crashes inside neon instead of making bogus commits. I believe svn: also fails.

  6. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.