gpt4 book ai didi

version-control - 如何使用 Mercurial 进行文本文档的版本控制?

转载 作者:行者123 更新时间:2023-12-04 16:25:03 25 4
gpt4 key购买 nike

这不完全是一个编程问题,但是我认为它比 TeX group 更适合这里。

我想使用版本控制来跟踪文本文件的更改(用于创建 LaTeX 输出。(由于我不是程序员,我还没有更深入的版本控制系统经验。)
我想用 Mercurial为此,我正在 MacOS X 10.6 上工作。

这些文件是关于工作申请的,所以每个公司主要有 3 个文件:

  • 一封动机信
  • 一份简历
  • 以及一份包含文凭、证书、...
  • 的文件

    我有几个关于实际事情的问题:
  • 我已经有一个包含许多子目录的目录(每个公司一个)。每个子目录包含 2 或 3 个 *.tex 文件以及辅助文件和生成的 pdf。 (有时还有一些其他包含公司信息的文件)。
    如果我想在新存储库中添加已经存在的文件并从每个文件(大约有 15 个不同的版本)创建一个修订版,我该怎么做?
    当然,“ parent ”和“ child ”的关系将不可见,但至少我可以做一个差异,看看发生了什么变化,每个人都会有一个修订号。
  • 我可以将这些文件保留在原始目录中并将它们添加到版本控制系统中,还是必须将它们放在特殊的位置?
    (我想将其他文件添加到这些目录中,这些文件不会添加到版本控制中,我想知道
  • 我可以为修订版指定一个“名称”(例如公司名称)以便以后更容易找到它们吗?
  • 创建新修订的最佳工作流程是什么?
    我会从存储库中选择一个现有的修订版,将其导出到新公司的新文件夹中,更改 tex 文件,然后将其提交回存储库?!
  • 最佳答案

    我对使用 Hg 没什么好说的,但我想我会分享一些我在使用 git 时遇到的烦人问题对于我的 latex 文件(我认为 hg 的行为相同)。

    VCS 最初可能是为版本控制代码而设计的,通常每行只有一个句子。但是,对于 Latex 和其他文本文档,很自然地会写出整段文本而不将每一行分成单独的句子。因此,段落中单词的任何更改都会移动该段落中所有其他单词的位置,并且当您执行 diff 时,它显示整个段落已被更改。当您有很多文本并且您进行修改然后所有内容都突出显示时,这会很烦人!这是一个小例子:

    \documentclass{article}
    \begin{document}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque blandit lacus aliquet eros tempus non tristique nisl consectetur. Sed orci odio, viverra quis rutrum eu, eleifend eget risus. Nam elementum tempus auctor. Nunc tincidunt dui et mauris varius faucibus ultrices nulla iaculis.
    \end{document}

    在进行初始提交并进行一些小的更改后,这是 diff 的输出:

    enter image description here

    我不知道我做了什么改变!解决方法是使用可选的 --color-words ,这将仅突出显示已更改的单词。我通常设置我的 diff默认使用此选项。您也许可以找出 mercurial 是否有类似的东西。

    enter image description here

    虽然git把整段都记录为被修改了,但是只高亮了被修改的单词,对我来说已经足够了。

    另一种解决方案需要对您编写 latex 文件的方式进行小幅更改。考虑这个例子,从上面的一个修改而来。
    \documentclass{article}
    \begin{document}
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    Pellentesque blandit lacus aliquet eros tempus non tristique nisl consectetur.
    Sed orci odio, viverra quis rutrum eu, eleifend eget risus.
    Nam elementum tempus auctor.
    Nunc tincidunt dui et mauris varius faucibus ultrices nulla iaculis.
    \end{document}

    这里每个句子都有自己的行。如果您编译两个 latex 示例,则输出将没有区别。这是因为 Latex 会在句点后自动放置一个空格,并忽略单个换行符。现在,当您在一行中进行更改并对其进行比较时,git 将仅突出显示该行而不是整个段落。这是我慢慢开始做的事情,虽然一开始无法连续阅读一个段落很烦人。

    关于version-control - 如何使用 Mercurial 进行文本文档的版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147906/

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