`

(ZZ)Ror on svn

    博客分类:
  • RoR
阅读更多

正好需要,zz过来,抄袭自:http://www.surui.net/2007/01/12/rails-with-subversion-svn/


首先是初始化 Rails app 的一系列命令,其中忽略了所有的 log 文件,tmp 文件,database.yml:

# svn import . repository_url -m “Import” –username user

# mv your_rails_app your_rails_app_backup

# svn checkout svn_url_to_your_repository your_rails_app

 

# svn remove log/*

# svn commit -m “removing all log files from svn”

# svn propset svn:ignore “*.log” log/

# svn update log/

# svn commit -m “ignore all file in /log/ ending .log”

 

# svn propset svn:ignore “*” tmp/sessions tmp/cache tmp/sockets

# svn commit -m “ignore all files in /tmp/”

 

# svn move config/database.yml config/database.yml.example

# svn commit -m “moving database.yml to database.yml.example to provide a template for anyone who checks out the code”

# svn propset svn:ignore “database.yml” config/

# svn update log/

# svn commit -m “ignore datase.yml”

如果需要忽略掉 tmp/ 下面的所有文件,可以这样:

# svn remove tmp/*

# svn propset svn:ignore “*” tmp/

# svn update tmp/

# svn commit -m “ignore tmp/ content from now”

如果 team 同时在 -nix 和 windows 上面开发,会有 shebang(#!) 不同的问题,可以忽略掉所有的 dispatch 文件:

# svn move public/dispatch.rb public/dispatch.rb.example

# svn move public/dispatch.cgi public/dispatch.cgi.example

# svn move public/dispatch.fcgi public/dispatch.fcgi.example

# svn commit -m “moving dispatch.* to dispatch.*.example to provide a template for anyone who checks out the code”

# svn propset svn:ignore “dispatch.*” public/

# svn update public/

# svn commit -m “ignore dispatch.* files”

对于 rails plugin 的管理,可以直接将 plugin 作为外部文件,当 update 的时候所有的 plugin 都会找自己的 svn trunk 去 update,我们也可以指定一个版本锁定我们当前的 plugin:

# ruby script/plugin install -x svn_url_to_plugin_repository

# svn commit -m “added plugin xxx”

# svn update

# svn propedit svn:externals vendor/plugins

 

globalize -r179 svn_url_to_plugin_repository 

 

开发过程中用 script/generate 产生的 rails 文件都需要手动添加到 svn 的工作拷贝中,如果觉得太麻烦可以使用下面的脚本,可以自动 svn add 所有的 status 为 ? 的文件:

 # svn status | grep “^\?” | awk “{print \$2}” | xargs svn add

如果文件名包含空格,可以用下面的脚本:

 # svn status | grep “^\?” | sed -e ’s/? *//’ | sed -e ’s/ /\ /g’ | xargs svn add

或者更省事的是在 bash 配置文件( 我mac上的配置文件是 ~/.bash_profile )里面加一个 alias :

alias svnaddall=’svn status | grep “^\?” | awk “{print \$2}” | xargs svn add’

编辑完记得 source ~/.bash_profile

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics