2010-01-19 29 views
3

在SourceSafe中,我可以知道是否有人修改了文件但未提交,因为该文件将被锁定。我如何看到已修改的文件,但未从服务器提交?

默认情况下Svn不能使用锁,这很好,但是我怎么知道某人是否修改了任何文件并忘记了提交?

在我的工作中,我们在开发机器上编译dll并发送到staging,我知道构建服务器与subversion服务器集成可以解决此问题,但我不想在此刻执行此操作。

PS:我担心的是用旧的.cs编译项目,因为程序员可能没有提交。

回答

5

这不是SVN的工作原理。

SubVersion使用源代码管理的edit-merge-commit方式。任何人都可以自由更改任何文件。提交时,如果有冲突,这些变化可(自动或手动)合并

有关锁定和更多的讨论编辑合并提交可以在这里找到:

VSS to Subversion

+1

*“任何人都可以自由更改任何文件。”* - 不严格正确。 **从v1.2开始,Subversion可以选择支持锁定**(“保留结帐”)。更多信息在这里:http://subversion.tigris.org/svn_1.2_releasenotes.html。然而,许多用户认为这违背了Subversion的哲学,只是为了完整而包含在内。 – RedFilter 2010-01-19 14:21:24

+0

我的关注点是用旧的.cs编译一个项目,因为程序员可能没有提交。 – 2010-01-21 11:04:51

0

有一个Check For Modifications命令,你可以在更新后运行,除非我误解你。

+0

这听起来像是他正在寻找一种方式来告诉其他开发者是否在本地修改了文件,但还没有提交回SVN。因此,检查修改不太适合该法案。 – 2010-01-19 14:12:30

1

您可以在每个人开始修改文件之前创建一个内部过程,要求SVN服务器进行锁定。这样每个人都会收到他正在处理该文件的更新。

但是这样做会消除Subversion的好处,即更多的人可以同时在同一个文件上工作,并合并结果。

0

这种部署风格不适用于Subversion。您声明您不希望将构建服务器置于原位,因此您必须依赖所有开发人员在部署前执行一组一致的步骤,以便在发送到分级时不会丢失任何内容。我怎么会解决,这是创建构建脚本,将执行以下操作(仅适用于发布到分期):

  • 拉下从Subversion的最新
  • 建立所有输出
  • 运行单元测试
  • 提交的所有修改文件回SVN
  • 推组件,以分期
  • 后推的配置更改/环境准备

这种方式未提交的更改将不会存在于任何暂存中。

0

您可以使用svn status来检查您是否有任何本地未得到的改变。

要知道是否有人有一些无法改变的变化,您需要劝说/贿赂/支付/恐吓其他人每天运行测试,或将其放入cron或其他调度程序中。当然,那么你会因为某个原因(例如,某些尚未完成,未正常工作等)而留下的文件而感到震惊。

+0

我如何在Tortoise SVN中使用svn状态?它扫描我所有的高清或刚选择的项目? 是的,我们有SourceSafe的版本问题,想象与Svn – 2010-01-22 10:56:43

相关问题