2

我使用 WinCVS 作为客户端和 CVSNT 作为我的源代码控制服务器。我想添加到我的 CVS 存储库中的一些文件被添加为 Unicode 文件。现在,我想重新提交与 ANSI(又名 ASCII)文件相同的内容。但是,尽管从存储库中删除了旧文件,但每次我添加同名文件时,它都会自动为文件分配 Unicode 编码。

有出路吗?或者换句话说,一旦将文件添加到 CVS,我可以更改文件的编码吗?

4

3 回答 3

4

有几件事(可能)在这里发挥作用:

  • 您可以在 WinCvs 本身中禁用自动文件类型检测:转到 Admin|Preferences|Globals,名为“添加文件时提供控制”的选项 - 理论上,您应该能够在完成此操作后使用工具栏中的常规 Add 命令

  • 确保您的cvswrappers (客户端和服务器端)中没有任何条目来定义您添加为 unicode 的文件类型

  • 最新版本的 WinCvs 捆绑了一个宏,用于在 WinCvs UI 未涵盖的情况下添加具有特定 k 模式的文件(查找 Macros|Add|Extended Add Selection... - 您可能应该明确强制它使用“文本”(又名 -kt)以确保服务器也不执行文件类型自动检测

  • CVSNT 支持文件类型更改的版本控制。在您的情况下,此命令序列cvs update -kt后跟cvs commit -f

  • 最新版本的 WinCvs 还捆绑了一个用于执行后者的宏,它位于 Macros|CVS|Change File Options

[我是这里引用的两个宏的作者,所以如果他们给您带来任何麻烦,请随时与我联系 - 您可以在宏本身中找到我的联系信息]

于 2008-11-12T01:31:43.670 回答
0

首先,我推荐使用TortoiseCVS,因为它有更好的CVSNT支持。CVS和whieCVSNT很相似CVSNT不是。TortoiseCVS对话框将显示它猜测的文件类型,您可以在那里覆盖文件类型。 CVSAdd

对于现有的情况,假设您不想保留 Unicode 文件的历史记录,您可以尝试以下方法。

好的,首先是警告:

您不应手动编辑 CVS 存储库(除非您真的很绝望)

现在请您自行承担违反上述规则的说明。

  1. 备份您的 CVSNT 存储库目录(简单的 ZIP 文件即可)
  2. 在客户端上,确保 Unicode 文件实际上已在本地和存储库中删除。
  3. 在 CVSNT 存储库目录中:
    1. 找到您最初添加文件的模块目录
    2. 找到Attic目录
    3. 删除文件及其任何,v扩展名。
  4. 在客户端:
    1. 验证文件是否具有 ANSI 编码(纯文本文件)
    2. cvs add再次文件
于 2008-11-11T18:44:55.457 回答
0

这里的建议都没有帮助我,但这有效

  1. 备份文件
  2. 在 cvsnt 中删除文件并提交
  3. 恢复文件
  4. 在 cvsnt 中从命令行“add -kt -- myfile.html”添加文件
  5. 提交添加的文件

注意:文件类型由 -k 开关指定,后跟文件类型

于 2015-08-31T21:36:11.233 回答