gpt4 book ai didi

linux - CVS 行尾

转载 作者:IT王子 更新时间:2023-10-29 01:12:17 26 4
gpt4 key购买 nike

我们有大量在不同平台上使用 CVS 的程序员。

我们有开发人员使用带 TortoiseCVS 的 Windows(它使用 cvsNT)

我们有开发者使用 ubuntu 8.04

我们的开发人员有两个盒子 Ubuntu 和 windows。

不同平台上的不同开发人员使用范围广泛的不同编辑器。

我们在行结尾方面遇到了很大的问题。这表现为文件中行尾数的持续增长。

据我所知,TortoiseCVS 使用 cvsNT,它假定存储库中的 UNIX 行结尾。当您 checkout 时,它会将 UNIX 行尾转换为 Windows 行尾,而当您提交时,它会将 Windows 行尾转换回 UNIX 行尾。

在 ubuntu 中,cvs 客户端不进行任何转换,因为存储库应该是 UNIX 行尾,而 linux 也使用 UNIX 行尾。

如果 Windows 上的每个人都使用基于 cvsNT 的客户端,这一切都可以正常工作。没有人会更换他们的操作系统。

遗憾的是,使用 Ubuntu 和 Windows 机器的人经常切换,并可能在不同的操作系统上 checkout 、编辑或提交。

结果他们最终使用具有 Windows 行结尾的 linux CVS 客户端提交了一个文件。

当在 Windows 上使用 cvsNT 客户端检查时,CRLF 被转换为 CCRRLF,显示为两行。这种情况发生的次数越多,文件中出现的新行就越多。

有没有办法让 Linux 上的 CVS 在提交时将任何 Windows 行结尾转换为 UNIX 行结尾以防止这种情况发生。这样 CVS 服务器将只有 UNIX 行结尾。

也欢迎提出任何其他克服此问题的建议。

最佳答案

一种方法是要求开发团队强制执行行尾。

dos2unix 和 unix2dos 在 linux 和 unix 上都工作得很好。 Windows 上的 cywgin 将提供一个实现。

您可以有一个脚本来清理人们在签到之前运行的行尾。

我的主要建议是要么切换到另一个版本控制系统,要么关闭魔术换行。我从来没有为我提供神奇的换行转换,我的开发团队一直有一个标准的编码。它并没有完美地工作,但它工作得非常好。

您还可以编写一个简单的脚本,该脚本将在持续集成环境中运行,扫描会增加换行符的更新。然后您可以拒绝更改或清理问题。

祝你好运,雅各布

关于linux - CVS 行尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com