【问题标题】:How do I revert a modified file using CVS?如何使用 CVS 恢复修改后的文件?
【发布时间】:2013-03-20 06:07:07
【问题描述】:

我已从 CVS 存储库中检出一个文件并对其进行了更改。

cvs up 命令表示文件已修改M

我需要删除我的更改。什么 cvs 命令可以帮到我?

【问题讨论】:

  • 你可以覆盖和更新。
  • 如果你删除了文件,然后做了cvs up,那不会恢复它吗?而且SVN也有revert命令,CVS不是也有吗?
  • @ppeterka 它没有。删除 + 更新是要走的路。

标签: cvs revert


【解决方案1】:

这是一个令人惊讶的复杂操作。我们最终使用了这个脚本“cvsunedit”。我承认这看起来有点矫枉过正,但 cvs 中有些事情比他们应该做的更难。

#!/bin/bash
# cvsunedit - revert a file's modifications while preserving its current version
set -e
if [ "$1" = "" ]
then
    exit 0
fi
for f in $*
do
    echo "$f"
    base="$(basename "$f")"
    dir="$(dirname "$f")"
    rev="$(perl -e "while(<>){m#/$base/([^/]+)/# && print \$1 . \"\n\";}" < "$dir/CVS/Entries")"
    if [ "$rev" = "" ]
    then
        echo "Cannot find revision for $f in $dir/CVS/Entries"
        exit 1
    fi

    executable=0
    [ -x "$f" ] && executable=1

    mv "$f" "$f.$$.rev$rev.bak" || rm -f "$f"

    set -x
    cvs up -p -r "$rev" "$f" > "$f"
    set +x
    chmod -w "$f"
    [ $executable -ne 0 ] && chmod aog+x "$f"
done
exit 0

【讨论】:

    【解决方案2】:

    你使用

    cvs update -C filename
    

    【讨论】:

    • 它更新到最新版本。恢复相同的版本怎么样。
    • 您可以使用-r revision 并指定您想要的版本。
    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 2013-06-19
    • 2011-01-17
    • 1970-01-01
    • 2018-04-26
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多