Linux 跟踪单个文件的版本控制系统

Linux 跟踪单个文件的版本控制系统,linux,version-control,latex,Linux,Version Control,Latex,到目前为止,我使用git来管理我的latex文件。但是git一次管理一个文件夹中的所有latex文件 我想要的是一个版本控制系统 分别为每个文件提供历史记录 允许我签出单个文件的旧版本,而不影响其他文件 让我在不影响其他文件的情况下为每个文件创建分支 为各个文件的版本提供标记 也许用git做这件事是可能的,但我不知道怎么做。那么,有没有什么好的,方便的版本控制系统用于此目的 也许我应该补充一点,我使用linux作为操作系统,使用emacs作为latex编辑器。我同意@BasileStaryn

到目前为止,我使用git来管理我的latex文件。但是git一次管理一个文件夹中的所有latex文件

我想要的是一个版本控制系统

  • 分别为每个文件提供历史记录
  • 允许我签出单个文件的旧版本,而不影响其他文件
  • 让我在不影响其他文件的情况下为每个文件创建分支
  • 为各个文件的版本提供标记
也许用git做这件事是可能的,但我不知道怎么做。那么,有没有什么好的,方便的版本控制系统用于此目的


也许我应该补充一点,我使用linux作为操作系统,使用emacs作为latex编辑器。

我同意@BasileStarynkevitch——Git是您所需要的全部

对于Git,您可能只需要一个漂亮的GUI,这样您就可以更容易地看到正在发生的事情

Git是为程序员设计的,用于处理分布在多个子目录中的大量源文件。 您的用例略有不同,但仍然可以很好地使用Git

早期版本控制系统(RCS,SCCS)做了您刚才在问题中描述的事情——但事实证明这是一个混乱,因为任何实际项目通常都不止一个文件;-)如果每个文件都由自己的版本控制来处理,那么很容易忘记签入文件。(不要这样做)

因此,不要想“我需要获得文件A的前一个版本和文件B的另一个版本”,试着在使用Git时,在完成项目时制作快照。e、 你的项目的“迷你版本”。如果你的项目是LATEX,那么你正在写一本书或一份出版物——也许在每次更新完成时都会签入你的更改,并将其视为“迷你版”

使用Git的图形用户界面将帮助您看到文件、分支、标记等之间的差异。。
Git具有将文件早期版本的内容合并到当前文件的功能,因此Git没有问题。还有一些工具可用于查看和编辑并排的差异。

以前的答案完全是假的:

  • 所有任何当前VCS使用存储库中的全套文件(命名为变更集或修订版或…),因此您的需求3-4不能满足现状-分支和标记是全局的
  • 只有CVS(如果我们不记得古代的VCS)可以使用单个文件作为管理对象,但是我强烈建议现在甚至不要考虑使用CVS
但是

  • 如果您的所有项目都是单个文件???.tex,那么您可以使用任何VCS-您不会看到您的用例有任何差异(看起来是这样的)
  • 在单个文件更改的情况下对整个repo进行增量版本控制并不是一件坏事,它确实让生活变得简单-没有人担心“我必须使用文件A的版本N来使用文件B的哪个版本”

RCS仍然可用,并且工作正常(我仍然使用它) 例如,用例是一个“posters”目录(使用svg,而不是二进制格式),其中每个文件都很大,所以不想将它们合并到一个单独的hg或git目录中,这样会变得非常庞大


顺便说一句,我以前使用SCCS,但RCS要好得多

听起来你想要RCS。(不过,您可能需要重新考虑!)我正在使用linux。我不是在写一本书或诸如此类的东西,我确实有很多独立的小型单文件LaTeX项目,所以你的观点并不适用于我的情况……那么,在你的情况下,你应该为你的每个项目都有一个单独的目录和它自己的Git存储库(每一个都可能包含你的LaTeX文件、插图、图片等)一般来说,当你使用Git时,你的所有项目都没有一个“单片”版本控制系统,但是每个项目都有单独的Git存储库。你听说过RCS和SCCS吗?RCS-是的,SCCS-否。你错过了“当前”吗在我的p.1中?!甚至连CVS都不在“当前VCS”类中