Repository Upgrade FAQ

Chris Tsai Cory Johns

How do I migrate commits made to my old repository after the upgrade?

If your old repository was not set read-only and there were commits made to it after your project were upgraded, you will need to bring those commits over to the new repository. With git and Mercurial, it is relatively straightforward to push the commits to the new repository. Just pull all the commits from the old repo, change your origin / default path (see below), and push the commits to the new repo.

For SVN, it is more complicated. If there are no new commits on the new repository, you can just use the Import Repo tool on the Admin page of the project to reimport the repository. If the repos are diverged, you will need to merge the changes into the new repo:

svn merge -r<last-common-revision>:HEAD <old-repo-url>

How do I change git to point to the new repo?

If you have a newer version of git, you can use set-url:

git remote set-url origin <new-repo-url>

If your version of git doesn't support set-url, you'll need to remove and re-add the origin remote:

git remote rm origin
git remote add origin <new-repo-url>

You can also just edit the .git/config file and change the URL there.

How do I change Mercurial to point to the new repo?

Just edit the hgrc file in .hg/hgrc and change the URL for default in the [paths] section.

How do I change SVN to point to the new repo?

Newer versions of SVN can use the relocate command:

svn relocate <new-repo-url>

Older versions will need to use switch instead:

svn switch --relocate <old-repo-url> <new-repo-url>

You can get the old repo URL from the info command:

svn info

Note that the URL paths need to match, that is, if your old URL ends in /trunk, the new one must as well, and vice-versa. If not, you may get the error:

svn: Can't find entry

I need more help!

Contact SourceForge Support and we'll do what we can to help.


1 2 > >> (Page 1 of 2)
  • warnke
    warnke
    2013-04-09

    Q: With SmartSVN 6.5, the checkout of svn+ssh://USER_NAME@svn.code.sf.net/p/MY_PROJECT_NAME/code/trunk does not work.
    A: Checking out svn+ssh://USER_NAME@svn.code.sf.net/p/MY_PROJECT_NAME/code works.
    Open Point: With the first path (Q:), I get the error, that the path does not exist. With the second version (A:), even the toplevel trunk folder is checked out.

     
  • warnke
    warnke
    2013-04-09

    Q: I have not found the relocate/switch buttons in my SVN client. Is there a way to do a complete new checkout on the new location and work on this new checkout? Currently, some hook tells me that not:
    "
    Commit: Commit failed (details follow): Commit blocked by start-commit hook (exit code 1) with output: This repository has moved to a new location. This project was upgraded to the new SourceForge platform, so a one-time move of this repo was performed. There are instructions for switching to the new location below. You can no longer commit to the repo at this location. Please update your configuration with the following command: svn relocate "svn+ssh://USERNAME@svn.code.sf.net/p/accs/code/" Older versions of SVN may need to use the command: svn switch --relocate OLD_URL "svn+ssh://USERNAME@svn.code.sf.net/p/accs/code/" where OLD_URL is the URL from the output of svn info. If you receive an error regarding mismatched UUIDs, or "Can't find entry" see http://sourceforge.net/p/forge/community-docs/SVN%20and%20project%20upgrades/ for instructions on how to resolve it. More information available at: https://sourceforge.net/p/forge/community-docs/Repository Upgrade FAQ/ MKACTIVITY of '/svnroot/accs/!svn/act/670fa1ef-3d01-0010-8222-d566949e7b45': 500 Internal Server Error (https://accs.svn.sourceforge.net)
    "
    A: It works today. Thanks if you changed something on server side.

     
    Last edit: warnke 2013-04-10
  • Carlo Wood
    Carlo Wood
    2013-04-14

    A probably more correct way to relocate an SVN repository is to specify the root(s). Also the Repository Root can be obtained with 'svn info' and the new root is the one ending on '/code'. Thus:

    svn switch --relocate <old-repo-root> <new-repo-root>

    for example,

    svn switch --relocate "https://PROJECTNAME.svn.sourceforge.net/svnroot/PROJECTNAME" \ "svn+ssh://USERNAME@svn.code.sf.net/p/PROJECTNAME/code"

    without any 'trunk' stuff ;)

     
  • Tom Browder
    Tom Browder
    2013-04-23

    How do I change my "~/.subversion/servers" entry for the new repo? My old entry for a server group was:

    brlcad = brlcad.svn.sourceforge.net

    and it "just worked."

    I tried

    brlcad = svn.code.sourceforge.net

    and

    brlcad = svn.code.sourceforge.net/p/brlcad/code

    and no go for either. Have the authentication methods changed also?

     
  • Tom Browder
    Tom Browder
    2013-04-23

    Okay, my bad. I changed to the correct new repo type (svn+ssh) and this server group def worked for authentication:

    brlcad = svn.code.sourceforge.net

     
  • Tom Parry
    Tom Parry
    2013-05-01

    I use MyEclipse and the relocate fails for:
    old url:
    https://hlagile.svn.sourceforge.net/svnroot/hlagile/hlaabstraction
    new url:
    svn+ssh://prospect-saas@svn.code.sf.net/p/hlagile/code/hlagile-code
    Error message:
    The system cannot find file specified.
    svn:Can't crate tunnel: The system cannot find the file specified.
    What now?

     
    • Chris Tsai
      Chris Tsai
      2013-05-30

      The "hlagile-code" part of the checkout command displayed is the (suggested) checkout directory when you use the svn from the command line.

      The URL you should be using instead is just:

      svn+ssh://prospect-saas@svn.code.sf.net/p/hlagile/code/

      Or

      svn+ssh://prospect-saas@svn.code.sf.net/p/hlagile/code/hlaabstraction

      For the exact directory you were using previously.

       
  • Tom Lint
    Tom Lint
    2013-05-05

    I'm unable to relocate my repository using TortoiseSVN.
    When I attempt to relocate, I get the error message
    "svn+ssh://halofreak1990@svn.code.sf.net/p/xfxframework/code/ xfxframework-code is not the root of the repository"

     
    • Chris Tsai
      Chris Tsai
      2013-05-30

      The "xfxframework-code" part of the checkout command displayed is the (suggested) checkout directory when you use the svn from the command line.

      The URL you should be using instead is just:

      svn+ssh://halofreak1990@svn.code.sf.net/p/xfxframework/code/

       
  • Emma Hastings
    Emma Hastings
    2013-05-09

    Getting same error on eclipse as Tom Perry

     
  • Di-Shi Sun
    Di-Shi Sun
    2013-05-17

    I checked out from the new repository, changes something, committed and failed.

    Transmitting file data .........svn: E165001: Commit failed (details follow):
    svn: E165001: Commit blocked by start-commit hook (exit code 1) with output:

    This repository has moved to a new location. This project was upgraded to the new SourceForge platform, so a one-time move of this repo was performed. There are instructions for switching to the new location below. You can no longer commit to the repo at this location.

    Please update your configuration with the following command:

    svn relocate "svn+ssh://USERNAME@svn.code.sf.net/p/osp-toolkit/code/"
    

    Older versions of SVN may need to use the command:

    svn switch --relocate OLD_URL "svn+ssh://USERNAME@svn.code.sf.net/p/osp-toolkit/code/"
    

    where OLD_URL is the URL from the output of svn info.

    If you receive an error regarding mismatched UUIDs, or "Can't find entry" see
    http://sourceforge.net/p/forge/community-docs/SVN%20and%20project%20upgrades/
    for instructions on how to resolve it.

    More information available at: https://sourceforge.net/p/forge/community-docs/Repository%20Upgrade%20FAQ/

    Why?

     
    • tesanbei
      tesanbei
      2013-05-22

      Yeah, Why ? Why do you ask at each commit if users want to upgrade and finaly FORCING them to upgrade ? Why don't you just silently force them to upgrade in first place instead of just pretending that you give them the choice ? That would be cleared, at least!

      I didn't see the need for a move, so I didn't upgrade. So now that I have some time to do a quick commit, I find myself with a repo NOT WORKING ANY MORE... ! I think that what users expect from SF is something that just WORKS, not suddenly discovering this kind of thing!

      An angry user (... who will probably get used to it)

       
      • Chris Tsai
        Chris Tsai
        2013-05-30

        We wanted to give folks the choice to upgrade on their own schedule. It was never our intention to imply that this was optional, but that it was more a matter of "when".

         
        • tesanbei
          tesanbei
          2013-05-30

          Well, I'm sorry, but this was not stated this way, and in my opinion, you changed your mind at some time.
          Else, you smart guys at SF would have issued some message like "the upgrade will be mandatory by MM/DD/YYYY" instead of the more imprecise message I saw many times... Or did I miss the date ?
          Any planned migration of an IT system starts with deadlines. If there aren't any, then the users will think the migration is optional.

           
          • Chris Tsai
            Chris Tsai
            2013-05-30

            When we decided on the date, we announced on our blog, sent email notices, included it in our monthly newsletter, updated the "please upgrade" banner on the site, and the commit notices. In other words, we did all we could think of to continue to get the word out.

             
            • I don't remember getting an e-mail notification about this before it happened, only a notification that it had completed. Luckily I committed my changes just before the upgrade...

              Weird how "TortoisePlink", whatever that is, keeps asking for my password even for simple read access to the new repository.

               
    • Chris Tsai
      Chris Tsai
      2013-05-30

      Please log a support ticket for this and please indicate the affected project(s) and we'll see what we can do: https://sourceforge.net/p/forge/site-support/new/

      Thanks!

       
  • After upgrade to the new repository I have the give my password at least three times for each action I perform on the repository. I did a clean checkout via the latest tortoiseSVN. First I had problems to commit. This was solved by going from https:// to svn+ssh://.
    I did not expect to login three times, took me some time to accept this (I canceled login after two time filling my password). But now I still have to give my password three times for every action on the repository (commit, update, show log).

     
    • Chris Tsai
      Chris Tsai
      2013-05-30

      I understand there's something odd with Tortoise and the way it handles svn+ssh connections which causes the constant password requests. The best way around this in my opinion is using ssh keys as detailed here.

       
  • Kenneth Tanzer
    Kenneth Tanzer
    2013-05-30

    My project got upgraded. I can access and commit via ssh with the new git.code.sf.net url. But how do people access the repository for anonymous reads? Help!

     
    • Chris Tsai
      Chris Tsai
      2013-05-30

      As we clarified in IRC for you, the code browser page has a "RO" button which shows the read-only checkout command for anonymous access.

      If a user does not have read/write access to the repo, they will not be shown the RW (read/write) command, and the RO command will be default.

       
  • Kenneth Tanzer
    Kenneth Tanzer
    2013-05-30

    I appreciate the clarification. On a side note, many people might access the Git repository who don't have Sourceforge accounts and will never see the code browse page. It would have been helpful to have received the git: url along with the ssh url when the project updates were done! Thanks.

     
  • Chris Tsai
    Chris Tsai
    2013-05-30

    I've answered the questions that appeared to be outstanding from these conversation threads, however, if you still have questions, it's better to use the standard support mechanisms instead of commenting on this wiki page.

     
  • Gerry Kroll
    Gerry Kroll
    2013-05-31

    SourceForge used to create a nightly Tarball of the SVN repository. For the PhpGedView project, this Tarball could be downloaded by clicking on this URL:

    http://phpgedview.svn.sourceforge.net/viewvc/phpgedview/trunk/phpGedView/?view=tar

    Now that the project has been migrated to the new repository structure, where is the Tarball download location? Yesterday, I did a test update of the SVN repository by adding a do-nothing text file. Today, the above download doesn't contain that test file.

     
1 2 > >> (Page 1 of 2)