How do you rename a branch in CVS?

前端 未结 3 1744
执笔经年
执笔经年 2021-02-14 10:52

If you\'ve named a branch in CVS incorrectly, or the name originally chosen becomes inappropriate, how do you change it to something else?

A related question is How do y

相关标签:
3条回答
  • 2021-02-14 11:06

    The trick to this is using one of CVSs' more obscure admin commands, -N. It is a two stage process, effectively copy then remove.

    Firstly, you create a branch with the correct name that references the original branch name. Secondly, you delete the original branch name.

    Assume you have a file "File.txt" that is currently branched "bad_branch". You'd like the branch to be called - can you guess? - "good_branch".

    kwutchak% cvs log File.txt

    RCS file: .../data/File.txt,v
    head: 1.1
    branch:
    symbolic names:
    bad_branch: 1.1.0.2

    To create the new branch reference:

    cvs admin -N good_branch:bad_branch File.txt
    

    kwutchak% cvs log File.txt

    RCS file: .../data/File.txt,v
    Working file: File.txt
    head: 1.1
    branch:
    symbolic names:
    good_branch: 1.1.0.2
    bad_branch: 1.1.0.2

    To delete the original reference:

    cvs admin -N bad_branch File.txt
    

    kwutchak% cvs log File.txt

    RCS file: .../data/File.txt,v
    Working file: File.txt
    head: 1.1
    branch:
    symbolic names:
    good_branch: 1.1.0.2

    0 讨论(0)
  • 2021-02-14 11:06

    If you made a mistake "a few branches ago", admin -N option won't be helpful due to the branch position change.

    This solution will work only with full access to repository of Your project.

    1. Go to CVSROOT/Project
    2. Create a backup copy
    3. grep "old-branch-name" * -rl | xargs sed -i 's/old-branch-name/new-branch-name/g'

    Worked like a charm for me.

    Sorry for necro, but I think that my solution will help anyone with situation similiar to mine.

    0 讨论(0)
  • 2021-02-14 11:13

    As I cannot add comments to given answers yet (reputation to low), I want to remark that the given command in previous answer is missing double-quotes!

    Correction:

    grep "old-branch-name" * -rl | xargs sed -i 's/old-branch-name/new-branch-name/g'
    
    0 讨论(0)
提交回复
热议问题