日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝

背景:

日积月累与踩坑填坑,是两个对应的系列。介绍主题、更新频率不如DICOM医学图像处理专栏般固定,主要用于记录日常工作中遇到的问题,可能很深奥、也可能很肤浅,其主要目的是备忘与交流。在互联网,尤其是移动互联网飞速发展的今天,信息爆炸已经不足以表达海量信息的量级,毕竟个人的记忆量有限,因此记录日常点滴就显得尤为重要。
本篇记录两个简单的问题:SVN全新分支创建与VS窗体工程拷贝。

SVN全新分支创建:

1. 分支创建:

这里要说的“新分支”与通常所提到的branches/tags不同之处在于,此处的新分支不是指SVN服务器上任何branch或tag的副本,而是未在之前的SVN服务器出现过,是通过本地创建的全新分支。因此使用传统的Tortoise SVN中的Branching/Tagging无法顺利实现该目的。Branching/Tagging的使用如下,
日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第1张图片
从上图可以看出,此处本地的工程是源于SVN之前存在的某个分支的副本(如上图的http://svn.collab.net/repos/ProjectName/trunk),通过Branching/Tagging指令,修改下图中的Destination URL即可完成创建新分支或新标签的目的。
日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第2张图片

2. 解决方案:

如果此时本地工程并非来源于任何SVN仓库,是全新的一个项目。那么我们如何像Branching/Tagging那样在SVN服务器创建我们自己的分支,并将代码提交到SVN服务器呢?

此时可以使用Tortoise SVN的Import…指令实现,右键本地工程目录顶层文件夹,选择Import…指令,弹出 如下提示框:
日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第3张图片
在提示框的URL of Repository,输入希望创建新分支的SVN路径(即SVN服务器该项目的存放目录),即可创建我们想要的新的分支。
Tortoise SVN官方说明文档如下:

This section describes the Subversion import command, which was designed for importing a directory hierarchy into the repository in one shot. Although it does the job, it has several shortcomings:
1. There is no way to select files and folders to include, aside from using the global ignore settings.
2. The folder imported does not become a working copy. You have to do a checkout to copy the files back from the server.
3. It is easy to import to the wrong folder level in the repository.

For these reasons we recommend that you do not use the import command at all but rather follow the two-step method “Import in Place”, unless you are performing the simple step of creating an initial /trunk /tags /branches structure in your repository. Since you are here, this is how the basic import works …

VS窗体工程拷贝:

1. 拷贝UI工程到其他项目

直接拷贝UI工程到其他解决方案时,虽然可以成功加载,但是加载后原本的窗体文件诸如WindowsForm.cs、WindowsForm.Designer.cs、WindowsForm.resx并未归档到一起。如下图所示,左侧是VS2010中创建的演示窗体工程,将窗体FormforVS2010的文件导入到VS2012的解决方案中后,如右侧所示,并未正确识别出窗体,因此无法使用视图设计器查看窗体UI。
日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第4张图片

2. 解决方案

即使重新刷新解决方案,重新导入工程依然无法顺利解决该问题。其实该问题解决方案很简单,对比两个解决方案中的csproj项目文件即可找到了解决方案:修改依赖项关系,添加DependentUpon,即可解决。
日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第5张图片

日积(Running)月累(ZSSURE):SVN全新分支创建与VS窗体工程拷贝_第6张图片





作者:[email protected]
时间:2015-09-20

你可能感兴趣的:(SVN,tag,tag,import,branch)