svn:关注在svn中更改代码以及直接在服务器上更改代码

时间:2013-08-23 03:33:30

标签: svn tortoisesvn

昨天我通过ssh更改了一个css文件,我在文件中添加了一些代码:

#c285{
    margin-top: 33px;
    float: right;
}

今天我想知道如果我通过svn这样做会是什么样的,所以今天我检查了源代码,并做了一个测试,我在这个文件中放了一些代码:

#35{
  clear: both;
}

然后我通过tortoiseSVN提交了这个css文件,我发现结果是这样的:

一个。服务器上的css文件 同时拥有#c285#35

湾svn中的css文件 只有#35

所以我的问题是:

1.这是什么意思?如果我在ssh中更改代码,稍后如果我不在svn中触摸此代码(#c285),它将保留在那里,如果我在svn中更改它将被覆盖?

2.接下来,如果我需要发布它,是否会发布ssh所做的更改或仅更改svn?

1 个答案:

答案 0 :(得分:0)

听起来就像你在网络服务器上有工作复制结账一样。在Web服务器上编辑文件时,您对该文件进行了本地更改。

稍后,您在本地计算机上的单独工作副本上更新了一个文件,并将其提交给SVN。然后,您或某个自动化流程在Web服务器上的工作副本上运行svn update

更新后,您对本地工作副本的修改将保留,更新的输出通常会显示以G开头的行,以显示来自svn服务器的更改已与您的本地更改进行了合并。但是,如果您的更改与本地更改发生冲突(修改相同的行),则它将显示为C(如冲突中),然后工作副本中的文件将具有格式,以显示哪些方面具有哪些数据,因此您可以解决冲突。

根据您使用Subversion的方式,您应该避免修改Web服务器上的工作副本。这样做可能会导致您的更改产生冲突,从而破坏您的文件(您的文件中将存在冲突标记,这将是无效的css)。您可能想要阅读有关处理冲突的信息: http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html#svn.tour.cycle.resolve

您可以使用svn status命令查看是否对工作副本进行了本地修改。有关status命令的详细信息,您可能需要阅读svnbook的这一部分: http://svnbook.red-bean.com/en/1.7/svn.tour.cycle.html#svn.tour.cycle.examine

我无法回答您的第二个问题,因为我不知道“发布”操作在您的设置环境中意味着什么。如果你不了解细节,你需要分享更多有关你如何工作或可能与之讨论的细节。

我还建议您阅读svnbook中copy-modify-merge工作流程的说明: http://svnbook.red-bean.com/en/1.7/svn.basic.version-control-basics.html#svn.basic.vsn-models.copy-merge