Skip to content

Latest commit

 

History

History
113 lines (84 loc) · 4.36 KB

vcs.md

File metadata and controls

113 lines (84 loc) · 4.36 KB

🐌 VCS相关脚本

你会发现这些脚本都是svn分支相关的操作。

个人在使用Git的过程中(7年+),并没有发现有对应脚本的需求(侧面反映出Git的优秀)。
原因:Git的概念模型一等公民支持分支,切换分支是件很简单且统一的事,而svn不得不涉及仓库的URL(不统一简单)。

我已经在自己的开发机上卸载了svn,没有需求场景也没理由再用了。 😛

使用更现代的Git吧! 💥

  1. swtrunk.sh
    自动svn工作目录从分支(branches)切换到主干(trunk)。
    PS: Git对应的是git checkout master,如果你使用了oh-my-zsh,已经有对应的别名加速了:gcm
  2. svn-merge-stop-on-copy.sh
    把指定的远程分支从刚新建分支以来的修改合并到本地svn目录或是另一个远程分支。
    PS:Git的合并很直接简单,git merge branch-foo,也更智能(没有树冲突一说)。
  3. cp-svn-url.sh
    拷贝当前svn目录对应的远程分支到系统的粘贴板,省去CTRL+C操作。
    PS:Git分支不需要URL来引用,没有这个脚本的需求,直接给个分支名就好了。

svn工作目录从分支(branches)切换到主干(trunk)。
支持LinuxMacWindowscygwinMSSYS)。

命令以svn的标准目录命名约定来识别分支和主干。 即,分支在目录branches下,主干在目录trunk下。 示例:

用法

swtrunk.sh # 缺省使用当前目录作为svn工作目录
cp-svn-url.sh /path/to/svn/work/directory
cp-svn-url.sh /path/to/svn/work/directory1 /path/to/svn/work/directory2 # svn工作目录个数不限制

示例

$ swtrunk.sh
# <svn sw output...>
svn work dir . switch from http://www.foo.com/project1/branches/feature1 to http://www.foo.com/project1/trunk !

$ swtrunk.sh /path/to/svn/work/dir
# <svn sw output...>
svn work dir /path/to/svn/work/dir switch from http://www.foo.com/project1/branches/feature1 to http://www.foo.com/project1/trunk !

$ swtrunk.sh /path/to/svn/work/dir1 /path/to/svn/work/dir2
# <svn sw output...>
svn work dir /path/to/svn/work/dir1 switch from http://www.foo.com/project1/branches/feature1 to http://www.foo.com/project1/trunk !
# <svn sw output...>
svn work dir /path/to/svn/work/dir2 switch from http://www.foo.com/project2/branches/feature1 to http://www.foo.com/project2/trunk !

把指定的远程分支从刚新建分支以来的修改合并到本地svn目录或是另一个远程分支。
支持LinuxMacWindowscygwinMSSYS)。

用法

svn-merge-stop-on-copy.sh <来源的远程分支> # 合并当前本地svn目录
svn-merge-stop-on-copy.sh <来源的远程分支> <目标本地svn目录>
svn-merge-stop-on-copy.sh <来源的远程分支> <目标远程分支>

示例

svn-merge-stop-on-copy.sh http://www.foo.com/project1/branches/feature1 # 缺省使用当前目录作为svn工作目录
svn-merge-stop-on-copy.sh http://www.foo.com/project1/branches/feature1 /path/to/svn/work/directory
svn-merge-stop-on-copy.sh http://www.foo.com/project1/branches/feature1 http://www.foo.com/project1/branches/feature2

贡献者

姜太公提供此脚本。

拷贝当前svn目录对应的远程分支到系统的粘贴板,省去CTRL+C操作。
支持LinuxMacWindowscygwinMSSYS)。

用法

cp-svn-url.sh # 缺省使用当前目录作为svn工作目录
cp-svn-url.sh /path/to/svn/work/directory

示例

$ cp-svn-url.sh
http://www.foo.com/project1/branches/feature1 copied!

贡献者

ivanzhangwb提供此脚本。

参考资料

拷贝复制命令行输出放在系统剪贴板上,给出了不同系统可用命令。