版本和 git 的自动分支

版本和 git 的自动分支

我正在写博士论文,由于我并不是一个最不混乱的人,所以我也添加了注释以供将来参考。当然,这意味着它不是生产级,或者您想如何称呼它。

有一个很好的软件包versions可以处理版本问题。我们也有有用的答案将 latexdiff 与 git 结合使用使用 git。我现在的目标是拥有类似于版本的东西,但当内容介于两者之间时,内容会被删除,\advisorcannotsee并且\allokay会在advisor分支中签出。最好只编译主版本(或标记为要编译的版本)。

这样的事情是否已经存在,或者是否有更好的解决方案?

根据请求:

工作流程示例:

  1. 我有一个 git 存储库,位于我的论文的工作目录上,其中包括我使用\input或其他方式所做的所有评论。
  2. 除了主分支之外,我还有多个分支,比如说paper1advisor包含与主分支相同的内容(包含所有内容),但是部分内容被切掉了。
  3. 我修改了我的文档,并添加了仅供我查看的内容(主要内容)和一些供我的顾问查看的内容。我想使用类似版本包的东西来标记属于哪里的部分。
  4. 编辑完成后,我会提交更改。由于我的修改包含属于不同分支的部分,因此我希望“构建”顾问认可的版本(删除部分内容)并提交,advisor并将整个内容提交到主分支。

答案1

首先,有几个定义:

修订:项目中文件的一种特定状态,位于一条或多条历史记录中

:一种特定的变体,其目的是与其他变体不同

(请注意,我热衷于使用“版本”这个词;它太模糊了,并且只会在这里出现,如果有的话,在谈论“版本控制系统”时。)

我坚信,使用不同的修订版本(可能在 VCS 的不同分支上)不是管理版本的好方法。个人尴尬的经历表明,当创建分支时它们永远不会再融合在一起,当一个更改需要合并到多个版本中时,一个分支上的更改可能会被遗忘,或被错误地包含在内。

一个更好的方法是创建一个可配置的主文件,并将其包含在一系列顶级文件中,每个所需的版本对应一个文件。

这是一个包含三个版本的示例。这是一份非常简单的试卷,包括问题、答案和笔记,并使用 Viktor Eijkhout 的comment软件包和 Hendrik Mittby 的todonotes软件包。您可能会发现其他软件包更适合您的特定情况。

为了简单起见,我没有使用任何与考试或问答相关的软件包,只是用了 Enrico Gregorio 的软件包kantlipsum来补充一点。请记住,这并不是“优秀排版”的示例,只是制作多态版本的一般原则的说明。

这三个版本分别是:

  1. 学生版:仅限问题
  2. 考官版:问题和解答指南
  3. 导师版:问题、答题指南以及我与导师讨论考试发展的笔记。

该示例由五个 TeX 文件组成:

学生.tex:

\documentclass[disable]{memoir} % [disable] is passed to todonotes
\input{preamble}
\excludecomment{answers}
\input{master}

审查员.tex:

\documentclass[disable]{memoir}
\input{preamble}
\includecomment{answers}
\input{master}

主管.tex:

\documentclass{memoir}
\input{preamble}
\includecomment{answers}
\input{master}

序言.tex:

\usepackage{kantlipsum}
\usepackage{comment}
\usepackage{todonotes}
\newcommand{\mynote}[1]{\todo[inline]{#1}}

master.tex:

\begin{document}
\section{Philosophy}

Compare and contrast Aristotle's view with that of Kant, expressed in the following quotation:

\begin{quote}
\kant[2]
\end{quote}

\mynote{Should that be Aristotle, or would Plato be more demanding?}

\begin{answers}
\textbf{Answer Notes:}
bear this in mind: \kant[2]
\end{answers} 
\listoftodos
\end{document}

相关内容