I currently use Perforce locally on my computer at home and on my computer at work and I am very happy with it
Looks like DVCS to me (Distributed Version Control). Git or Mercurial could definitively help, in that they would scale nicely with the number of developers. Just define a central repository. Git actually can work with VisualStudio
in Perforce, if I try to check in a file that needs to be synched or merged, it will prompt me to do so before checking in
It is so when working on the same file on the same branch. With DVCS tools, you would create your local branch and control whenever you want to merge other works in your current branch (rebase) or just merge your work to a common branch (merge).
So I would recommend a DVCS tool rather than a central repository tool in this instance.
We are a development shop and used MS sourcesafe for a long time before giving up on it because of a lot of problems when you get beyond a certain size.
Now we are using svn exclusively. I am yet to see too many incorrect automatic merges, but it detects conflict if same part of the file is changed in both places and lets you merge manually. I am interested to know if you can stop automated merge and have full control.
The merge resolution window is really good and it will allow you to merge manually in no time.
We use Ankhsvn on vs 2008 and sometimes tortoise svn. We tested the visual svn but found that Ankhsvn is good enough (although I am not sure it supports file renaming and merging history yet!)
I'm a long-time Perforce user and absolutely love it, but I can appreciate that the licensing fees might be a bit too much for a small company.
As I see it, the main reasons for using Perforce are:
Mature merge tracking. SVN isn't quite there yet.
Superb support team (I seem to always get replies within the hour or so)
Speed.
Having said that, I think that SVN would be the easy way to go if you are willing to lessen your expectations a bit in the above areas, at least for the time being. I'll probably get flamed because of that statement, but so be it. You'll just have to decide what you are willing to pay in terms of time vs money - if you are a heavy user of branching and merging it just might be that the Perforce branch/merge capabilities will pay off.
Another thing to consider if you are developing OSS is that Perforce actually offers free licensing for Open Source development.
是的,如果您需要 VS 支持,我仍然推荐 Subversion(对此我推荐 VisualSVN,就个人而言 - 不是免费的,但非常便宜)。 我喜欢 Git,但据我所知,它没有很好的 VS 集成。
In Subversion you don't merge locally when you commit - you merge locally when you update. (There's a server-side merge when you commit, but that's not the same thing.) However, you have to be up-to-date before you can commit. It's a subtle but important distinction.
Subversion will merge for you when it feels confident in the change, but will leave appropriate conflicts alone to be merged manually. I haven't seen many bad merges performed automatically.
And yes, I'd still recommend Subversion if you need VS support (for which I'd recommend VisualSVN, personally - not free, but very cheap). I like Git, but it doesn't have good VS integration that I'm aware of.
Also, I seem to recall that SVN is folder based and not file based?
svn stores a .svn repository for each folder but you can add individual files within a folder. It also has good rules for automatically finding/ignoring files based on extension.
Ankhsvn does visual studio integration, personaly I prefer tortoiseSVN integration with explorer but that just depends on how you work.
ps. On the server side you can have SVN store changes in individual files or in a BSD type database, checks the docs for which is best for you, but this doesn't effect the client side.
Jon 提到的 Visual SVN 或 Ankh SVN 都是 Visual Studio 集成的可行解决方案。
I agree with Jon Skeet. (doesn't everyone?!) - ;-)
SVN is still a great choice for you. You can use a visual tool like TortoiseSVN to handle your interaction with SVN and including a repository web client like ViewVC is a good option if you want to access/browse the repos from your browsers.
There is a pile of extensibility built into SVN as well. You can add all sorts of custom actions to any pre-commit or post-commit events (and many more).
Visual SVN as Jon mentioned or Ankh SVN are both viable solutions for Visual Studio integration.
发布评论
评论(9)
有关 git + Visual Studio 的讨论,请参阅之前的线程:
将 Git 与 Visual Studio 结合使用
see prior thread for discussion of git + visual studio:
Using Git with Visual Studio
我来说看起来像 DVCS(分布式版本控制)。 Git 或 Mercurial 绝对可以提供帮助,因为它们可以随着开发人员的数量而很好地扩展。 只需定义一个中央存储库即可。 Git 实际上可以与 VisualStudio 一起使用
在同一分支上处理同一文件时也是如此。 使用 DVCS 工具,每当您想要合并当前分支中的其他工作(变基)或只是将您的工作合并到公共分支(合并)时,您都可以创建本地分支和控制。
因此,在这种情况下,我建议使用 DVCS 工具,而不是中央存储库工具。
Looks like DVCS to me (Distributed Version Control). Git or Mercurial could definitively help, in that they would scale nicely with the number of developers. Just define a central repository. Git actually can work with VisualStudio
It is so when working on the same file on the same branch. With DVCS tools, you would create your local branch and control whenever you want to merge other works in your current branch (rebase) or just merge your work to a common branch (merge).
So I would recommend a DVCS tool rather than a central repository tool in this instance.
我们是一家开发商店,使用 MS Sourcesafe 很长一段时间,然后因为超过一定规模时会出现很多问题而放弃它。
现在我们只使用svn。 我还没有看到太多不正确的自动合并,但如果文件的相同部分在两个地方都发生了更改,它会检测到冲突,并允许您手动合并。 我很想知道您是否可以停止自动合并并拥有完全控制权。
合并分辨率窗口非常好,它允许您立即手动合并。
我们在 vs 2008 上使用 Ankhsvn,有时也使用 tortoise svn。 我们测试了视觉 svn,但发现 Ankhsvn 足够好(尽管我不确定它是否支持文件重命名和合并历史记录!)
We are a development shop and used MS sourcesafe for a long time before giving up on it because of a lot of problems when you get beyond a certain size.
Now we are using svn exclusively. I am yet to see too many incorrect automatic merges, but it detects conflict if same part of the file is changed in both places and lets you merge manually. I am interested to know if you can stop automated merge and have full control.
The merge resolution window is really good and it will allow you to merge manually in no time.
We use Ankhsvn on vs 2008 and sometimes tortoise svn. We tested the visual svn but found that Ankhsvn is good enough (although I am not sure it supports file renaming and merging history yet!)
我是 Perforce 的长期用户,并且非常喜欢它,但我可以理解,许可费用对于小公司来说可能有点太多了。
在我看来,使用 Perforce 的主要原因是:
话虽如此,我认为如果您愿意在上述领域稍微降低您的期望,那么 SVN 将是最简单的方法,至少目前是这样。 我可能会因为这句话而受到批评,但就这样吧。 您只需要决定您愿意在时间与金钱方面付出什么 - 如果您是分支和合并的重度用户,那么 Perforce 分支/合并功能可能会带来回报。
如果您正在开发 OSS,需要考虑的另一件事是 Perforce 实际上为开源开发提供免费许可。
I'm a long-time Perforce user and absolutely love it, but I can appreciate that the licensing fees might be a bit too much for a small company.
As I see it, the main reasons for using Perforce are:
Having said that, I think that SVN would be the easy way to go if you are willing to lessen your expectations a bit in the above areas, at least for the time being. I'll probably get flamed because of that statement, but so be it. You'll just have to decide what you are willing to pay in terms of time vs money - if you are a heavy user of branching and merging it just might be that the Perforce branch/merge capabilities will pay off.
Another thing to consider if you are developing OSS is that Perforce actually offers free licensing for Open Source development.
在 Subversion 中,提交时不会在本地进行合并 - 更新时会在本地进行合并。 (提交时会有服务器端合并,但这不是同一件事。)但是,您必须先更新才能提交。 这是一个微妙但重要的区别。
当 Subversion 对更改有信心时,它会为您合并,但会留下适当的冲突以供手动合并。 我还没有看到很多自动执行的错误合并。
是的,如果您需要 VS 支持,我仍然推荐 Subversion(对此我推荐 VisualSVN,就个人而言 - 不是免费的,但非常便宜)。 我喜欢 Git,但据我所知,它没有很好的 VS 集成。
In Subversion you don't merge locally when you commit - you merge locally when you update. (There's a server-side merge when you commit, but that's not the same thing.) However, you have to be up-to-date before you can commit. It's a subtle but important distinction.
Subversion will merge for you when it feels confident in the change, but will leave appropriate conflicts alone to be merged manually. I haven't seen many bad merges performed automatically.
And yes, I'd still recommend Subversion if you need VS support (for which I'd recommend VisualSVN, personally - not free, but very cheap). I like Git, but it doesn't have good VS integration that I'm aware of.
svn 为每个文件夹存储一个 .svn 存储库,但您可以在文件夹中添加单独的文件。 它还具有基于扩展名自动查找/忽略文件的良好规则。
Ankhsvn 进行 Visual Studio 集成,我个人更喜欢 tortoiseSVN 与资源管理器集成,但这仅取决于您的工作方式。
附: 在服务器端,您可以让 SVN 将更改存储在单个文件或 BSD 类型数据库中,检查最适合您的文档,但这不会影响客户端。
svn stores a .svn repository for each folder but you can add individual files within a folder. It also has good rules for automatically finding/ignoring files based on extension.
Ankhsvn does visual studio integration, personaly I prefer tortoiseSVN integration with explorer but that just depends on how you work.
ps. On the server side you can have SVN store changes in individual files or in a BSD type database, checks the docs for which is best for you, but this doesn't effect the client side.
SourceGear Vault 与 VS 2008 完美集成,可以满足您的所有要求。
每个席位 249 美元(可享受批量折扣),如果文件需要合并,它会提示您。 另外,它还有一个很棒的差异/合并工具。
它对单个用户免费,因此请尝试一下,看看它是否满足您的要求。
SourceGear Vault integrates perfectly with VS 2008, and does everything you ask for.
$249 per seat (volume discounts available), and it'll prompt you if files need merging. Plus, it's got a great Diff/Merge tool.
It's free for a single user, so give it a shot and see if it meets your requirements.
我同意乔恩·斯基特的观点。 (不是每个人都这样吗?!) - ;-)
SVN 对您来说仍然是一个不错的选择。 您可以使用诸如 TortoiseSVN 之类的可视化工具来处理与 SVN 的交互,并包括诸如ViewVC 是一个不错的选择。
SVN 中也内置了一堆可扩展性。 您可以将各种自定义操作添加到任何预提交或提交后事件(以及更多)。
Jon 提到的 Visual SVN 或 Ankh SVN 都是 Visual Studio 集成的可行解决方案。
I agree with Jon Skeet. (doesn't everyone?!) - ;-)
SVN is still a great choice for you. You can use a visual tool like TortoiseSVN to handle your interaction with SVN and including a repository web client like ViewVC is a good option if you want to access/browse the repos from your browsers.
There is a pile of extensibility built into SVN as well. You can add all sorts of custom actions to any pre-commit or post-commit events (and many more).
Visual SVN as Jon mentioned or Ankh SVN are both viable solutions for Visual Studio integration.
Re-Perfoce 与 SVN:如果您想拥有 Perforce 的合并跟踪功能以及 Subversion 的其他功能,Mercurial 看起来相当不错。
Re-Perfoce vs SVN : Mercurial looks quite good if you want to have the Merge Tracking capabilities from Perforce, and everything else from Subversion.