问题标签 [rcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
version-control - 在 CVS 存储库中的 RCS 文件格式中,xy0.2 作为修订版表示什么?
背景
我正在尝试从 CVS 存储库中抢救代码。我正在reposurgeon
为此目的使用,并且我尝试了以下工具来让自己git-fast-import
流式传输:
cvs-fast-export
, 出错(所谓的循环分支,但未提供详细信息)cvs2git
其次git-fast-export
,它把事情混搭在了无法理解的范围之内git-cvsimport
其次是git-fast-export
,它创造了迄今为止最好的结果,但最终也会把东西扔到他们不属于的树枝上。
此 CVS 存储库已在各种 CVS 版本上运行,并且标签和分支已被强制移动。我知道这意味着我不能再挽救那些分支和标签了。但就这样吧。
尽管如此,我有六个分支(在更多分支中),加上MAIN
,我有兴趣在转换为git-fast-import
流期间保留这些分支。我的目标 VCS不是Git,但关键是reposurgeon
它以这种方式处理其输入并以这种方式输出。
为了理解工件并在预处理阶段通过rcs -o<rev>
(当然是在我的 repo 的副本上)清理尽可能多的旧东西(包括孤立的修订版),我需要了解如何rcsfile
格式工作的内部结构。
rcsfile.py
修改模块后解析是小菜一碟rcsgrep
。但这还没有为我提供任何有关修订号的信息,尤其是那些没有相应 delta+log 的修订号的含义。
我所看到的
根据RCS 文件手册页,不应该出现修订 ID 的第三段为 0 的情况。但我确实看到了这种情况。
这是我所做的(作为实验)。
- On
MAIN
: 提交文件 (1.1
) - 从
MAIN
: 分支到BranchX
(1.1
) - On
BranchX
: 更改文件 (1.1.2.1
) - On
BranchX
: 再次更改文件 (1.1.2.2
) - On
MAIN
: 更改文件 (1.2
) - On
MAIN
: 标记文件foobar
(1.2
) - 从
MAIN
: 分支到BranchX
,移动分支标记 (1.2
),有效地将前一个分支孤立在1.1.2.x
- On
BranchX
: 删除文件 (1.2.2.1
) - On
MAIN
: 更改文件 (1.3
) - On
MAIN
: 强制标记文件foobar
(1.3
) - On
MAIN
: 更改文件 (1.4
) - On
MAIN
: 标记文件foobarbaz
(1.4
)
正如您在上面的列表和下面完全复制的文件中看到的那样,没有1.2.0.2
以带日志的 delta 形式进行的修订。
现在我的问题
如果我新分支修订版x.y
(没有文件更改!),则生成的修订版 ID 为x.y.0.2
. 这类似于我看到和询问的神秘修订 ID。
- 是否
0
表明该文件没有增量,因此我必须返回其祖先以获取实际内容? - 还是 0 只是表示该分支的“根”,第四段是该分支的最新版本?
谁能阐明这些问题或指出比上面链接的手册页更全面的材料?
以下是完整的 RCS 文件:
git - 为什么 rcs co on ,v 文件会为某些文件创建 0kb 文件?
操作系统和工具信息:我在 Windows 7 上使用 Cygwin 的 mintty Unix bash 的最新(2/11/2015)更新。
我正在努力将 CVS 存储库转换为使用 Git,并且需要从 tarball 中恢复文件。提取文件后,我尝试使用“cvs checkout”并获得了一些文件,但大多数文件都在阁楼目录中并且没有被签出,即使我将它们全部移到一个目录中,所以他们不像这个 gnu 论坛中所建议的那样在阁楼中这不起作用之后,我尝试了无法解决的 cvs2svn。最后我尝试使用常规的 RCS co,它创建了我需要的大部分文件。
但是,从顶层目录中的 Attic 子目录中转换的所有文件都是空的 (0kb)。即使将 ,v 文件移至更高级别,它们也无法正确提取。
代码(rcs co 应该为以下工作)
但是,对于以下命令,rcs 无法正常工作并创建 0kb 大小的文件
移动到顶层不起作用
即使移动到工作目录也不起作用
什么可以解释 rcs co 的这种行为?其他文件具有相似的大小和扩展名。我似乎无法在存储库的文档中找到任何不同的方式来处理此特定目录中的阁楼文件,而且我无法在任何配置中找到确凿的证据。有任何想法吗?
rcs - 我可以查看带有差异的 RCS 日志吗?
遗憾的是,Unix.stackexchange 或 ServerFault 上没有RCS
标签,所以我将其发布在 StackOverflow 上。
我被 SVN/Git 宠坏了,我需要查看文件的历史记录。在我的脚本中,我使用 RCS 来跟踪对系统配置文件所做的更改,所以如果我可以像使用 Git 一样查看它们,那就太好了。对于 git 我git log -p
用来获得这种输出。
是否有一个标志rlog
或rcsdiff
任何东西可以让我得到一个有差异的日志?
或者我必须自己使用rcsdiff
shell 脚本来实现它吗?
git - Git:我可以得到一个 RCS $Id$ 字符串的等价物吗?
我有一个作为单个文件分发的程序,并且不经过安装过程。
有没有办法让 git 嵌入一个类似 RCS 的 $Id$ 字符串?签入时间戳等也可以,只是在现场轻松识别文件。Github 特定的解决方案是可以接受的。
git - 如何仅对某些子目录使用版本跟踪器?
我可能正在寻找错误的工具,但我有一个配置如下的系统:$HOME/module/submodule/{bin,config,log,tmp},在多个服务器上。我想将源代码控制添加到所有配置目录,而不是其他目录(尤其是日志!)。我猜我可以将 git 指向 $HOME 并使用 .gitignore 排除我不感兴趣的所有内容,但是可以不时添加新模块,这意味着我想立即排除很多东西。有任何想法吗?我错过了一些明显的东西吗?顺便说一句,我没有嫁给 git,我会接受任何满足我需求的系统。中央变更存储库会很好,但不是必需的;我只是想要一种回滚错误的方法,并添加一些更改跟踪。
osx-elcapitan - 如何在 os-x 10.11 上安装版本控制 rcs
我正在尝试在 Mac os x 10.11 (El Capitan) 上安装 RCS。我从 Gnu, https: //www.gnu.org/software/rcs/ 下载了 tar 文件,但配置失败。谁能帮我 ?
python - 用于执行“ci -u”的 subprocess.call 命令"
我正在尝试执行一个 python 脚本,该脚本首先创建一个新文件(如果它不存在),然后执行 ci(在新创建的文件上)以创建一个具有初始修订号的 rcs 文件。但是当我运行脚本时,它会要求我提供描述并以句点“.”结尾。我希望这部分使用默认描述自动化,并在没有用户输入的情况下创建 rcs 文件。任何帮助将非常感激。以下是我的代码:
我试过这个,我收到以下错误:
导入操作系统
导入子流程
如果 os.path.isfile(位置):
别的:
回溯(最后一次调用):文件“testshell.py”,第 15 行,在 p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) 文件“/usr/local/ pythonbrew/pythons/Python-2.7/lib/python2.7/subprocess.py”,第 672 行,在init errread, errwrite) 文件“/usr/local/pythonbrew/pythons/Python-2.7/lib/python2.7/subprocess .py",第 1201 行,在 _execute_child raise child_exception OSError: [Errno 2] No such file or directory
linux - 如何在 RCS 中查找谁持有文件的锁
假设我锁定了一个由 RCS 控制的文件
我看到在 RCS 目录中生成了带有 ",v" 的文件
我们可以确定谁持有锁定文件吗?所有管理员都使用“root”登录进行更改(通过 sudo -s 成为 root)
如果有人已经锁定,我会看到以下消息
我们可以检查谁锁定了文件吗?
version-control - 更改 CVS 中的 RCSKEYWORD
我对 CVS 关键字有疑问。让我解释一下:在我的源文件 (*.c) 中,我在标题中有一个关键字“$Id”,这在结帐后返回一个字符串:
read.adb,v 1.1.1.2 2005/02/20 17:57:20 dprice Exp
但是我的团队和另一个团队,对同一个项目使用不同版本的 CVS。当他们检查软件时,$Id 关键字表达式返回:
read.adb,v 1.1.1.2 2005-02-20 17:57:20 dprice Exp
字符串的数据分隔格式不同:从“/”到“-”。当我生成 md5 时,这是一个非常大的问题。每个团队的这个 md5 会有所不同。
如何更改 $Id 的字符串?