Change SVN repository URL

前端 未结 4 1885
盖世英雄少女心
盖世英雄少女心 2021-01-30 03:35

My current SVN structure:

Path: .
URL: svn://someaddress.com.tr/project
Repository Root: svn://someaddress.com.tr
Repository UUID: ------------------------------         


        
相关标签:
4条回答
  • 2021-01-30 04:03

    Grepping the URL before and after might give you some peace of mind:

    svn info | grep URL
    
      URL: svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
      Relative URL: (...doesn't matter...)
    

    And checking on your version (to be >1.7) to ensure, svn relocate is the right thing to use:

    svn --version
    

    Lastly, adding to the above, if your repository url change also involves a change of protocol you might need to state the before and after url (also see here)

    svn relocate svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
        https://svngate.mycompany.org/svn/repos/trunk/DataPortal
    

    All in one single line of course.Thereafter, get the good feeling, that all went smoothly:

    svn info | grep URL:
    

    If you feel like it, a bit more of self-assurance, the new svn repo URL is connected and working:

    svn status --show-updates
    svn diff
    
    0 讨论(0)
  • 2021-01-30 04:11

    In my case, the svn relocate command (as well as svn switch --relocate) failed for some reason (maybe the repo was not moved correctly, or something else). I faced this error:

    $ svn relocate NEW_SERVER
    svn: E195009: The repository at 'NEW_SERVER' has uuid 'e7500204-160a-403c-b4b6-6bc4f25883ea', but the WC has '3a8c444c-5998-40fb-8cb3-409b74712e46'
    

    I did not want to redownload the whole repository, so I found a workaround. It worked in my case, but generally I can imagine a lot of things can get broken (so either backup your working copy, or be ready to re-checkout the whole repo if something goes wrong).

    The repo address and its UUID are saved in the .svn/wc.db SQLite database file in your working copy. Just open the database (e.g. in SQLite Browser), browse table REPOSITORY, and change the root and uuid column values to the new ones. You can find the UUID of the new repo by issuing svn info NEW_SERVER.

    Again, treat this as a last resort method.

    0 讨论(0)
  • 2021-01-30 04:24

    Given that the Apache Subversion server will be moved to this new DNS alias: sub.someaddress.com.tr:

    • With Subversion 1.7 or higher, use svn relocate. Relocate is used when the SVN server's location changes. switch is only used if you want to change your local working copy to another branch or another path. If using TortoiseSVN, you may follow instructions from the TortoiseSVN Manual. If using the SVN command line interface, refer to this section of SVN's documentation. The command should look like this:

      svn relocate svn://sub.someaddress.com.tr/project

    • Keep using /project given that the actual contents of your repository probably won't change.

    Note: svn relocate is not available before version 1.7 (thanks to ColinM for the info). In older versions you would use:

        svn switch --relocate OLD NEW
    
    0 讨论(0)
  • 2021-01-30 04:29

    If U want commit to a new empty Repo ,You can checkout the new empty Repo and commit to new remote repo.
    chekout a new empty Repo won't delete your local files.
    try this: for example, remote repo url : https://example.com/SVNTest cd [YOUR PROJECT PATH] rm -rf .svn svn co https://example.com/SVNTest ../[YOUR PROJECT DIR NAME] svn add ./* svn ci -m"changed repo url"

    0 讨论(0)
提交回复
热议问题