27

我发现了一些类似的问题(此处此处此处)询问有关将文档存储到版本控制中的问题。我有更具体的要求和一般性问题。具体要求是我要使用Git。更普遍的问题是,文档(用于项目的设计、测试、一般实践、技巧等)应该如何存储在 Git 中?更广泛地说,应该存储哪些文件?

我可以想到几个方法:

  1. Word / 打开 Office 文档。新的 Office Word 具有 docx 格式,可以压缩文档,但它也具有解压缩的 XML 格式,可用于在 Git 中有效地存储差异。diff 功能仍然被破坏,因为 XML 被压缩在一行上。这并不比将二进制文件存储到 Git 中更好。
  2. 维基。那里有哪些分布式维基?这就像某种 Latex 的东西,其中文档被编写和编译/查看为 wiki。
  3. 乳胶 - 但从将它用于文件我发现它非常不适合文件。是否有等效的文档?(手册页是如何编写的?)
  4. 纯文本格式,但由于缺乏图表,这相当缺乏,这带来了另一点。

视觉应该如何存储?他们首先应该由什么组成?我正在 Linux 环境中开发,但该项目的其他一些参与者在 Windows 上。有什么类似于 Visio 的跨平台解决方案?当然,它不应该创建二进制文件来存储到 Git 中。那么这将如何与文档联系起来呢?(例如,类似于 Latex 在编译时如何引用其他图表。)

4

7 回答 7

8

在决定选择哪种文档格式时,您应该确保团队成员(或者您是否独自工作?)对格式本身感到满意。

  1. 存储与其说是问题,不如说是能够看到版本和合并之间的差异。以我的经验,没有什么比可以在任何文本编辑器中自由编辑的文本格式更好的了。这不包括 HTML 和任何基于 XML 的格式。DocBook 是一个几乎无法使用的例外。

  2. IkiWiki是一个可以使用任何流行的版本控制系统并以分布式方式设置的好的 wiki 。使用 IkiWiki,标记解析是在插件中完成的,因此您可以根据每个文档选择输入格式。“默认”,Markdown非常接近纯文本格式。

  3. 如果您对使用 LaTeX 不满意,请不要使用它。我认为它不适合快速记笔记。手册页是用 nroff 编写的,但许多人使用其他格式,例如POD

一些努力成为 Visio 替代品的项目是 Kivio (KDE) 和 Dia (Gtk/Gnome)。我没有使用 Visio 本身,所以我无法评论他们的功能集。这可能取决于您要创建什么样的视觉效果/图表。UML?流程图?

于 2009-03-04T09:03:54.970 回答
6

我的公司将 Word 文档存储在 SVN 中,并通过 TortoiseSVN 访问它们。

Tortoise 使用 Word 的内置更改跟踪功能向您显示两个修订的“差异”。

这非常有效,但需要 Windows 和 Word。

编辑:

您可能也可以使用 git 来实现这一点。如果你安装 TortoiseSVN,然后查看%PROGRAMFILES%\TortoiseSVN\Diff-Scripts\,你会看到 Tortoise 在做什么。

如果您使用的是 git,我假设您的 1337 足以破解它为您工作:)

于 2009-03-04T02:55:33.810 回答
2

对于 Word 文档,请尝试使用 RTF(富文本格式),它基本上是文本。另一种可能性是 HTML。它们是文本,因此您应该能够对它们进行比较。

大多数 Wiki 都是为协作而设计的。我认为您实际上是在询问是否有托管解决方案,或者您是否必须管理它们。看看http://www.atlassian.com/

于 2009-03-03T22:31:33.507 回答
1

Git 可以像处理文本文件一样处理二进制文件。Git 不是显式存储差异,而是将文件的整个先前版本存储在存储库中。然后压缩存储库对象以节省空间。每当您要求差异时,都会即时重建差异。

因此,仅考虑磁盘空间,在 Git 中存储未压缩的 XML Office 文档与存储同一文档的压缩版本之间几乎没有区别。唯一的区别是 Zip 与 Git 选择使用的任何压缩的相对性能。

于 2009-03-03T22:31:03.010 回答
1

大多数文档格式在源代码控制方面表现不佳。您列出的几乎所有内容要么是有效的二进制格式,要么是难以区分的复杂标记。只要您只想要文档版本而不关心差异,就可以使用您喜欢的任何格式。我更喜欢 Microsoft Word 文档,因为您可以使用内置的更改跟踪和评论系统来跟踪文档之间的差异。

至于要存储哪些文件,我建议存储您以后使用的任何文件。如果您离开,某人可以使用哪些文件来继续该项目?哪些文件有助于让新人快速上手?这意味着规范,而不是燃尽图之类的文档。

要回答您问题的 wiki 部分,请查看DokuWiki。它将所有内容存储在文本文件中,因此很容易将它们添加到源代码控制系统中。

于 2009-03-04T00:32:25.387 回答
1

我刚刚接受了这样一个事实,即我无法通过版本控制系统跟踪对二进制文件格式的更改,但我还是使用它,因为它很有用。请注意,通常这些类型的文件中的大多数都是将发布的工作产品(用户指南、文档等)

对于需求和初始设计等早期项目工件,我倾向于使用文本文档——不是因为我可以跟踪更改,而是因为我喜欢使用我的 IDE。

我从来没有真正被版本控制中的更改无法“区分”这一事实“咬伤”。围绕更改重要二进制文档的提交注释和其他文档指南通常弥补了缺乏可见性 - 如果您寻找它,还有另一条线索。

我同意这并不理想,但我认为这真的不值得担心。

也许我刚刚习惯了一组文件的想法,我可以随心所欲地跟踪。

我在版本控制方面做了很多工作,但也对一些具有临时生命周期的东西使用缺陷跟踪。

于 2009-03-04T02:44:34.867 回答
0

对于OOo,word文档等二进制文件,你应该看看pro-git http://git-scm.com/book/ch7-2.html

于 2012-08-08T06:35:54.047 回答