【问题标题】:CVS checkout based only on tags仅基于标签的 CVS 结帐
【发布时间】:2010-12-28 17:19:26
【问题描述】:

我有一个文件,其中包含 CVS 存储库中包含的许多标签。有没有一种方法可以只使用这些标签签出所有文件及其相关目录,而无需签出整个存储库?

我没有存储库中的目录列表,因此我无法运行 cvs co -r baz_1_0_0_0 foo/bar/baz,因为我不知道 baz 的实际位置。

我正在运行 CVS 1.11,所以我没有像 rls 这样的命令可用。

【问题讨论】:

  • 正如所写,这没有多大意义。当您使用-r TAG 签出时,您只会获得具有该标签的文件。你看到了什么?
  • 正在运行cvs co -r baz_1_0_0_0 我收到一个错误,我必须specify at least one module or directory。由于我要检查的不是模块,因此我需要指定一个目录,但我不提前知道该目录,而且我无法想出一种方法来从某些目录中解析出所需的目录其他命令。
  • 嗯,是的,你必须指定一个项目的名称。没有标签怎么结账?

标签: cvs


【解决方案1】:

如果你这样做:

   cvs history -T

它会给你标签和相关的模块(假设你已经定义了 CVSROOT)。 然后,您可以 grep 查找您要查找的 TAG 并仅签出这些模块。

例如

mods=`cvs history -T | grep $TAG | awk '{print $6}'`
for mod in $mods; do
   cvs co -r $TAG $mod
done

【讨论】:

    【解决方案2】:

    查看.。这为您提供了存储库中的所有文件。使用-r,它会检出具有该修订或标签的所有文件。

    请注意,签出. 会填充当前目录,因此您可能需要先创建一个顶级目录。

    mkdir baz
    cd baz
    cvs co -r baz_1_0_0_0 .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多