但有时有这样一种需求,软件文档中的部分文字是不希望用户看到的(比如文档中列出了已知的bug或可能的更好解决方法),虽然原则上这些是应该告知客户的,但这些文字让用户看到后有可能会有引起一些其他的问题。甚至有时候公司内部文档也不希望一般开发人员全部看到,比如项目投标书,可能希望一般人员看,但不能看到最后关于报价的一部分。一般软件的文档都有密级,但这密级是限制在文件一级的,有时专门为不同类型人员产生不同密级的文档是很麻烦的,维护这些文档间的同步也很麻烦。
更有一些情况,软件的代码需要移交,但代码中的部分是不希望移交的,比如代码中有部分注释。或者软件有几种配置,debug、release配置之外,可能有其他一些自定义的配置,在移交时候,部分配置由于某些原因是不希望移交的,但在写代码时候不同配置的代码可能是写在一起的,靠程序中的宏来区分。现在没有一种版本控制工具可能按照这种密级基线来发布软件。比如发布一个1.0.0版的内部版本,包括所有的代码,文档,测试用例等;同时可以发布另一个1.0.0版的商业版本,包括部分代码,部分文档,部分测试用例。内部版本和商业版本包含的文件数目是相同的,只是代码或文档中那些密级比较高的部分已经除去了。
或许现有的版本控制工具可以实现这样的需求只是我不知道

