我还没有看到连续的版本控制系统 - 当您开发代码时可以保存更改,而不是等待正式的签入。当然,这些更改将保存为“未入住”,但它们会保存为在您实际进行官方签到之前,可以将其保存以备份,并由其他人查看。

我还没有看到这个,想知道它是否存在,以及它可能或可能不是一个好主意的原因。

现在,程序员认为源代码控制是集成代码数据包,但是为什么不使这些数据包更小并连续集成呢?

-亚当

有帮助吗?

解决方案

现在,程序员认为源代码控制是集成代码数据包,但是为什么不使这些数据包更小并连续集成呢?

我想说的是DVC基本上已经在做到这一点,不是因为它们是分散的,而是因为提交要快得多。.使用Git,我比使用SVN更频繁地承诺。它也使提交“块”或“特定”或者更容易代码(使用 git add -i 或者 git gui),通常更专注于跟踪代码行,而不是完整的文件(作为“传统” VCS'喜欢颠覆)

另外,git固有的工作方式意味着,正如您所说,“更改将被保存为'当然没有检查”。.当您提交时,更改是局部的,然后将它们推到远程计算机上,然后将它们推到远程机器上命令..您每次保存时都可以提交,然后如果您希望将它们重新置于单个提交中。

至于执行“连续版本控制”的工具,您可以简单地使用shell脚本来完成此操作。

while [ 1 ]; do
   git add -a && git commit -m "Autocommit at $(date)";
   sleep 10;
done

有一个脚本, CACM (github),做类似的事情

CACM]观看特定目录,并将所有更改用于独立的GIT存储库。

只使用:

cacm --repo dir_of_git_repo --watch dir_to_watch

我不确定您为什么要这样做。.我发现使用VCS最有用的事情之一是我更改的差异(自上次提交以来)。似乎有恒定/自动化的提交只是噪音。

另外, “ E”文本编辑器 具有一个有趣的功能,它可视化撤消历史记录,并通过分支。有一个 博客帖子 带有屏幕截图。

其他提示

恒定自动保存的工作不是版本系统的任务,而是编辑器的任务。当您在版本系统中看到新版本时,它应该代表其他版本的有意义的更改,而不是每个半个单词。

Eclipse具有称为“本地历史”的功能,可以正是这样做的。它将在保存之间保留您的源文件的副本。它甚至为您跟踪已删除的文件夹。它多次节省了我的屁股。您可以将本地历史记录视为仅在本地计算机上发生的低级版本控制。当然,当您在另一台机器上工作时,您的本地历史将不同。

您可以使用分布式版本控制系统 市场, git, 墨西哥。然后,您可以在本地提交。

我已经看到了一些针对各种DVC的插入插件,但是这些插件只能很聪明。确实,理想的事情是将存储库存储在复制的文件系统上,以便将这些频繁的粒状(和不可变)版本保存在DVC之外。

就像其他人所说的那样,我更喜欢做出许多小承诺。使用DVC,您不必担心打破行李箱或主分支,只有在完成后才推动。.在编辑文件时不用担心有毒的修订。

在Linux上,我使用 ext3cow 存储我的HG/GIT存储库。这给了我您描述的那种功能。可悲的是,我不知道像Linux之外的可移植物一样。也许一些疯狂的团队会在Python提出一支。

这个问题之前已经出现了几次(尽管每个情况都在不同的上下文中),因此肯定需要对Ext3Cow(但便携式)之类的东西很明显。但是,我不希望DVC本身,尤其是在巨大的树木上。

我认为您确实需要从文件系统而不是DVC询问此问题。

你不想入住 每一个 改变。您想签入可以一起工作的原子集更改。您不想将参数添加到方法并保存,然后将其签入(和CI构建运行),然后进行构建中断,因为您尚未更新对该方法的调用。

你的意思是像 颠覆自动化?

免责声明:我并不是说自动化是开发的好主意,或者我个人会这样做,但是该技术存在。

如果需要,您可以提交所有行,或具有dvcs之类的DVC的角色。通常,我认为在使用DVC时,最好经常提交,以便轻松地使用GIT Fienect等工具来寻找问题。如果您想要所描述的效果,则可以脚本脚本您选择的编辑器以在每一个保存上提交……在实践中,我认为这会有点多。

有些人会为此目的设立开发部门,并让开发人员在将其合并为质量保证级分支之前进行更改。您甚至可以让开发人员在自己的分支机构中进行重大更改工作,然后再将这些更改合并到主要开发部门。因此,分支可以解决这个问题。

我认为Eclipse会做或过去在每次保存中做这样的事情。当我的代码最终在试图识别错误时被黑客入侵时,它为我节省了几次。

这是一种不同的方法。几乎每天,我都会遇到某些事情停止工作的情况,而我不知道为什么。我倒带几分钟,检查已经进行了哪些更改以及要进行了哪些文件。因此,我同意对Continouos版本控制的需求。

同时,您不想每天都要检查成千上万的小更改。

好的,这就是您要做的。您两者都使用,但不要混合它们。整个团队应使用您的源控件,并且您时不时地进行检查。同时,您运行了一些本地个人文件版本软件,这些软件可以节省所有小更改,并可以轻松地实际使用该信息。

而已。我用 历史探索者 由于我帮助开发了它,但是还有其他人。

您可能对JetBrains开发的连续版本控制系统感兴趣。它尚未公开,但我在马尔莫(Malmo)的Jetbrainsday的主题演讲中展示了它的一些功能: http://new.livestream.com/jetbrains/jetbrainsday1/videos/29348962

作为 丹提到, ,IBM Visual Age IDE保留了您保存在源代码文件中的每个版本。但是,这种方法不仅限于IDE。这 DEC VM 操作系统采用了类似的方法 版本化的文件系统. 。在VMS中,每个文件的全名都包含一个版本号,并且每次保存文件时,都会创建一个新副本,其中版本号高于先前最高数字。

这两种方法都不符合我们今天所知的版本控制,因为两者都缺乏分支(或者就此而言,尤其是为了促进多个在同一源文件上工作的人)。但是,它们俩都可以抵抗人为错误的目的,这对我来说是版本控制中最有用的方面。

在Java拥有几年的编程经验,我仍然记得(怀旧)视觉时代为开发过程带来了新的方法。视觉年龄具有非文件源代码的方法。代码存储在关系数据库中。您通常会在显示单个方法的视图上工作。您还拥有完整的文件视图,但是您不会使用太多。

关于版本控制,它将在每个保存中生成一个版本。您可以明确检查使用版本号/名称的方法,类/接口,软件包或整个项目。它还允许在方法级别上对您的来源进行更细的粒度控制。一旦我开始使用Eclipse,虽然它从视觉时代继承了许多功能,而如今拥有历史功能,可以节省您代码的本地“保存”,但我不禁感到自己退后一步。

合理的 清晰 有一个概念 动态视图. 。在Windows上,您的开发视图显示为映射驱动器,但是一旦您击中保存,您的代码更改就会存储。那是您想要的吗?

正如您所期望的那样 si的答案 以上, ,这不是建议...

Vesta怎么样?

http://www.vestasys.org/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top