为 Subversion 用户强制执行?

Posted

技术标签:

【中文标题】为 Subversion 用户强制执行?【英文标题】:Perforce for a Subversion user? 【发布时间】:2011-02-15 09:11:18 【问题描述】:

我刚刚换了工作。我以前的雇主使用 Subversion,我的新雇主使用 Perforce。

作为一个用户,是否有任何资源可以帮助我将我的思维模型从 Subversion 转变为 Perforce?常见的 SVN 命令有哪些类似物?哪些概念的实现方式不同?

我对 Perforce 与 Subversion 的优缺点并不特别感兴趣 - 已经做出了决定。关于 S.O. 还有很多其他问题。覆盖那个。我想知道我必须做(或不做)什么心理调整。

【问题讨论】:

【参考方案1】:

我现在也在学习 Perforce,对我有用的是 P4 命令的指南,它有点等同于 SVN 命令。我将开始(欢迎更精通的人扩展/编辑此答案):

svn commit      ...   p4 submit
svn update      ...   p4 sync
...

Perforce Knowledge Base article 更详细。

【讨论】:

【参考方案2】:

Perforce 比 SVN 快得多,因为所有签出都存储在服务器上,因此它不必检查更新时的每个文件。 SVN 在与网络断开连接时工作得更好 - 使用 Perforce,您必须在完成结帐时告诉服务器。 它的 Windows GUI 非常好。 命令行不像 SVN 那样简单。 谷歌使用它!

【讨论】:

【参考方案3】:

我刚刚换了个方向。我以前的雇主使用 Perforce(Linux 服务器、Mac 和 Windows 客户端),我的新雇主正在过渡到 SVN。这是我遇到的:

我不会错过 Perforce 的分支。不过,这可能是环境。 您必须锁定!但至少你可以设置多个锁和签入。 我讨厌 Perforce 的“命令行”,你可以习惯它,但它从来都不简单。

我仍然不是 Perforce 的粉丝,所以 ymmv。通常习惯于使用提供的 UI,根据雇主的要求锁定,并注意您正在处理的变更列表(很容易被埋没在变更列表中)。

【讨论】:

【参考方案4】:

Perforce 和 Subversion 非常相似,它们都具有文件组的原子提交和基于路径的分支。

Perforce 有:

a) 待定变更集 - 您可以将正在编辑的文件分组并操作这些组。

b) Client-Specs - 您可以通过非常复杂的方案将存储库映射到本地工作空间。

c) 无外部 - 因此您不能将存储库的同一部分映射到工作空间中的多个位置,或将其他存储库映射到工作空间中的子目录。

d) 合并跟踪,这是 Subversion 的新功能。

e) 强大的服务器连接:您必须在编辑文件之前告诉服务器,服务器会使用此信息来很好地了解您的本地工作空间状态,从而加快更新速度。

【讨论】:

【参考方案5】:

即使它不是最新的演示文稿,您在this document 中仍然有一个很好的功能数组(在 Perforce 和 SVN 中)。

阅读 Perforce Branch Naming and Repository Structure Guidelines 会很有用,因为它的结构有点像 SVN 中的结构:Perforce 使用存储库结构来表示分支以及其他目录结构。

【讨论】:

【参考方案6】:

我想到了一些事情(我四年前使用过 perforce - 事情可能已经改变了)。

锁定 - perforce 要求您锁定正在处理的文件。 Subversion 没有。 changelist - 更改列表是使用 perforce 的基础。每个提交都是一个更改列表。它们在颠覆中不太重要。

This blog post 可能会帮助您完成过渡。

【讨论】:

关于锁定:Perforce 可能要求您获得对正在处理的文件的锁定。但是,它确实要求您通知服务器您正在处理文件(据我记得,这与 subversion 不同)。 @Caleb Huitt - cjhuitt - 我不是 Perforce 的专家,但据我所见,我相信 Perforce 会锁定您尚未签出的任何本地文件。这是 Perforce 和 Subversion 之间最大的区别,在我看来,这是进行转换时最头疼的问题。但是,它不会锁定 服务器。多个用户可以签出同一个文件,Perforce 会尝试合并它们。 小心术语 - Perforce 使文件只读。这不是“锁定”,它是源代码控制系统的不同功能 - 例如。您可以在 Perforce 中标记在编辑之前必须锁定的文件。 SourceSafe(我认为)要求您在编辑之前锁定所有文件。 赞成发布的链接,它为原始提交者的问题提供了最彻底的答案。

以上是关于为 Subversion 用户强制执行?的主要内容,如果未能解决你的问题,请参考以下文章

删除myeclipse下svn用户名和密码

使用IDEA subversion插件从SVN服务器上check out 代码

阿里云ESC搭建SVN服务端

集成禅道和svn

强制用户在编辑之前在 SVN 中锁定文件

更好的 Subversion 合并工具 [关闭]