-1

昨天我通过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中更改?

4

1 回答 1

0

在我看来,您的 Web 服务器上有一个工作副本结帐。当您在 Web 服务器上编辑文件时,您对那里的文件进行了本地更改。

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

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

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

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

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

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

于 2013-08-23T05:41:45.610 回答