如何将 VS2008 源代码管理暂时从 VSS 更改为 Mercurial?
在我的新工作地点,我正在 Visual Studio 2008 中开发一个解决方案,其源代码控制是 Visual SourceSafe 2005。由于许多可能与此处无关的原因,开发人员需要暂时脱离 VSS(以及彼此,在这种情况下效果很好)。我们现在不允许从 VSS 签入或退出。
由于我无法在没有源代码控制的情况下工作,因此我的想法是在我的计算机上设置 Mercurial 并将其用作项目的源代码控制,直到我们返回 VSS。 VSS 控制文件可以作为项目的一部分保留下来。我安装了 VisualHg 扩展。我从命令行创建了 hg 存储库。但是,当我尝试加载解决方案时,会发生以下两种情况之一,具体取决于 VisualHg 的“自动选择 VisualHG for Mercurial 解决方案”选项的值:(
- 自动选择)加载项目时,我收到一条消息:“活动解决方案或项目由与您选择的不同的源代码控制插件控制。如果您更改源代码控制插件,活动解决方案或项目将被关闭。您希望继续吗?”如果我选择“是”,解决方案当然会关闭。如果我选择“否”,则解决方案将在 VSS 源代码控制处于活动状态的情况下加载。
- (自动选择关闭)项目加载时 VSS 源代码控制处于活动状态。尝试将活动插件更改为 VisualHG(从工具 -> 选项 -> 源代码管理 -> 插件选择)会导致与上述相同的消息。
有没有一种方法可以让我轻松地(最好不要直接弄乱 .sln 或 .csproj 文件)使用 Mercurial 而不是 VSS,因为我知道几天后我将不得不切换回 VSS?不,目前还不能完全放弃 VSS(我希望如此)。此外,目前还不能将项目升级到 VS2010。
谢谢你!
At my new place of employment, I am working on a solution in Visual Studio 2008 whose source control has been Visual SourceSafe 2005. For a lot of reasons that are probably not relevant here, the developers need temporarily to work disconnected from VSS (and from each other, which will work out fine in this case). We are not allowed to check in or pull from VSS right now.
Since there's no way I'm working without source control, my idea was to set up Mercurial on my machine and use it as source control for the project until we will be going back to VSS. The VSS control files can stick around as part of the project. I have the VisualHg extension installed. From the command line, I created my hg repository. When I try to load the solution, though, one of two things happens, depending on the value of the "Autoselect VisualHG for Mercurial solutions" option for VisualHg:
- (Autoselect on) When loading the project, I get a message saying, "The active solution or project is controlled by a different source control plug-in than the one you have selected. If you change the source control plugin, the active solution or project will be closed. Do you wish to continue?" If I select Yes, of course the solution closes. If I select No, the solution loads with VSS source control active.
- (Autoselect off) The project loads with VSS source control active. Trying to change the active plug-in to VisualHG (from Tools -> Options -> Source Control -> Plug-in Selection) results in the same message as above.
Is there a way I can easily (preferably without messing with the .sln or .csproj files directly) use Mercurial instead of VSS here, knowing that I will have to switch back to VSS in a few days? No, dropping VSS entirely is not an option at this time (I wish it was). Also, upgrading the project to VS2010 is not an option at this time.
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这不是您所要求的,但一种选择是在您自己的计算机上创建一个 VSS 数据库并使用它,直到真正的 VSS 再次可用为止。在您自己的系统上使用 VSS 涉及许多与使用其他 SCC 工具相同的步骤,因此与使用 Mercurial 相比,在本地使用 VSS 可能没有任何显着优势。
在 Visual Studio 2008 中,您可以使用文件|源代码控制|更改源代码管理以打破解决方案和项目的本地副本与 Visual SourceSafe 之间的绑定。在该对话框中,选择所有条目并单击取消绑定。这应该可以解决您的“...由不同的源代码控制插件控制...”问题。
当需要切换回 VSS 时,您可以丢弃本地副本并使用 VSS 中的新副本重新开始(如果本地没有任何内容您想重新签入 VSS),或者您可以使用相同的对话框将项目绑定回来至 VSS。
或者,如果您对执行绑定没有信心,您可以使用 VSS 中的新副本重新开始,然后使用 Mercurial 中修改后的副本覆盖本地文件,然后在 VSS 中检查这些已更改的文件并返回到 VSS。
It's not what you asked, but one option would be to create a VSS database on your own machine and use that until the real VSS is available again. Using VSS on your own system would involve many of the same steps as using another SCC tool so there might not be any significant advantage to using VSS locally over using Mercurial.
In Visual Studio 2008 you can use File | Source Control | Change Source Control to break the binding between your local copy of the Solution and Project (or Projects) and Visual SourceSafe. In that dialog, select all the entries and click on Unbind. That should address your "... controlled by a different source control plug-in ..." problem.
When it's time to switch back to VSS you can either throw away your local copy and start over with a fresh copy from VSS (if there's nothing local you want to check back into VSS) or you can use the same dialog to Bind your project back to VSS.
Or, if you're not confident about doing a Bind you could start over with a fresh copy from VSS, then overwrite your local files with the modified copies from Mercurial and then check those changed files out-from and back-into VSS.