同一个项目, SVN和CVS之间代码同步更新
2008-11-11 21:49
337 查看
SVN和CVS之间代码同步更新
这个标题其实不是很准确, 但是是在想不出改用一个什么样的标题, 所以只能讲究了.
最近一直在维护一个项目, 公司内部使用的源码管理工具是cvs, 客户那边使用的是svn.
而且两边都有可能修改代码, 这就给代码更新带来了麻烦. 很多时候都要手工来做.
因为Eclipse中一个项目只能使用一种Team管理的工具, 不是CVS就是SVN, 所以我创建了两个项目, 一个是CVS(内部), 一个是SVN(外部).
Eclipse中SVN的每次update都会在console中输出日志, 大致就是增加/更新/删除了什么文件.
我们要做的就是, 分析log中每一行log相关的文件, 并且把它复制到CVS 工程相应的目录中.
之前也是这用ruby写过一个小程序, 最近想学习并使用Groovy, 于是有重写了一下.
大致逻辑是:
1. 用Eclipse从svn更新客户提交的修改, 然后将eclipse中svn在console中输出的日志/内容保存到一个文本中
2. 通过程序逐行读取文本中svn的log, 分析出涉及的文件,
3. 针对文件, 要么copy 要么 mkdir, 把SVN 项目中的最新文件覆盖CVS项目中的文件.
public class Svn2Cvs{
public static void main(String[] args) {
svn2cvs("adreel");
}
static void svn2cvs(String project) {
File inFile = new File("svn_log.txt");
inFile.eachLine() { String line ->
line = line.substring(7) // remove indent and A / U character
line = line.replaceAll('/', "////") // replace forwardslash with backwardslash
String newLine = line.replaceFirst(/$project/, "${project}_cvs") // build new line
if (line.indexOf('.') == -1) { // it's a dir
println "mkdir /"$newLine/""
}
else {
println "copy /Y /"$line/" /"$newLine/""
}
}
}
}
以下是SVN更新时log的样例:
U E:/Workspaces/MyWorkspace/svnproject/src/a/a/a.java
A E:/Workspaces/MyWorkspace/svnproject/src/a/b
A E:/Workspaces/MyWorkspace/svnproject/src/a/b/b.java
这个标题其实不是很准确, 但是是在想不出改用一个什么样的标题, 所以只能讲究了.
最近一直在维护一个项目, 公司内部使用的源码管理工具是cvs, 客户那边使用的是svn.
而且两边都有可能修改代码, 这就给代码更新带来了麻烦. 很多时候都要手工来做.
因为Eclipse中一个项目只能使用一种Team管理的工具, 不是CVS就是SVN, 所以我创建了两个项目, 一个是CVS(内部), 一个是SVN(外部).
Eclipse中SVN的每次update都会在console中输出日志, 大致就是增加/更新/删除了什么文件.
我们要做的就是, 分析log中每一行log相关的文件, 并且把它复制到CVS 工程相应的目录中.
之前也是这用ruby写过一个小程序, 最近想学习并使用Groovy, 于是有重写了一下.
大致逻辑是:
1. 用Eclipse从svn更新客户提交的修改, 然后将eclipse中svn在console中输出的日志/内容保存到一个文本中
2. 通过程序逐行读取文本中svn的log, 分析出涉及的文件,
3. 针对文件, 要么copy 要么 mkdir, 把SVN 项目中的最新文件覆盖CVS项目中的文件.
public class Svn2Cvs{
public static void main(String[] args) {
svn2cvs("adreel");
}
static void svn2cvs(String project) {
File inFile = new File("svn_log.txt");
inFile.eachLine() { String line ->
line = line.substring(7) // remove indent and A / U character
line = line.replaceAll('/', "////") // replace forwardslash with backwardslash
String newLine = line.replaceFirst(/$project/, "${project}_cvs") // build new line
if (line.indexOf('.') == -1) { // it's a dir
println "mkdir /"$newLine/""
}
else {
println "copy /Y /"$line/" /"$newLine/""
}
}
}
}
以下是SVN更新时log的样例:
U E:/Workspaces/MyWorkspace/svnproject/src/a/a/a.java
A E:/Workspaces/MyWorkspace/svnproject/src/a/b
A E:/Workspaces/MyWorkspace/svnproject/src/a/b/b.java
相关文章推荐
- 同一个项目, SVN和CVS之间代码同步更新[转载]
- svn 主干和分支项目代码更新与同步
- SVN 的使用:用两次就会了,很简单.注意总结【①做完自己代码,首先右键项目>team >“与资源库同步”,把队友的代码更新下来(而不是直接提交),②整合完设置"冲突已解决",才能提交】===
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- 总结代码开发完成–> 同步、更新、上传SVN –>服务器上部署整个流程
- Android studio下将项目代码上传至github包括更新,同步,创建依赖
- 代码同步工具CVS/SVN/VS插件 下载地址
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- 《Lucene、webservice、(svn_ant_maven)、DWR、Freemarker、POI视频教程》更新了Spring、JAXWs的整合并且完成了一个小项目
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- Centos6.5 搭建 SVN 服务器 及 钩子同步更新网站代码
- svn客户端提交项目代码后自动同步svn服务器上的项目代码到linux服务器上
- svn-多个项目版本库和自动同步更新post-commit
- 利用SVN的钩子同步更新代码的方法详解
- GITHUB上FORK一个项目来贡献代码以及同步原作者的修改
- 如何在github上fork一个项目来贡献代码以及同步原作者的修改
- 随笔:使用svn merge一个库下不同分支项目代码
- ubuntu的Linux安装svn并部署项目,同时实现项目同步更新(本地提交commit,项目目录自动更新)
- svn使用技巧一:更新、提交、资源库同步之间区别