1. 程式人生 > >svn 一次性提交整個目錄包括子目錄

svn 一次性提交整個目錄包括子目錄

svn st|awk '{print $2}'|xargs svn add。

 

乍看之下覺得更加精煉,仔細看下就會發現這個指令碼沒有區分檔案狀態。所以完善了以下這個指令碼:

 

 

 

svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add

 

這樣,以後我可能使用這個指令碼成百上千次。(當然這個指令碼也沒有考慮過濾不要新增的檔案)

 

當你第三次做一件事情的時候,就應該考慮將其工具化,自動化!

 

 

 

名稱

svn add — 新增檔案、目錄或符號鏈。

 

概要

SVN子命令add PATH...描述

檔案、目錄或符號鏈到你的工作拷貝並且預定新增到版本庫。它們會在下次提交上傳並新增到版本庫,如果你在提交之前改變了主意,你可以使用svn revert取消預定。

 

選項--targets FILENAME--non-recursive (-N)--quiet (-q)--config-dir DIR--no-ignore--auto-props--no-auto-props--force

 

例子:

我們通過一個例子來看一下SVN子命令add,新增一個檔案到工作拷貝:

$ svn add foo.c 

A         foo.c

當新增一個目錄,svn add預設的行為方式是遞迴的:

$ svn add testdir

A         testdir

A         testdir/a

A         testdir/b

A         testdir/c

A         testdir/d

你可以只新增一個目錄而不包括其內容:

$ svn add --non-recursive otherdir

A         otherdir

通常情況下,命令svn add *會忽略所有已經在版本控制之下的目錄,有時候,你會希望新增所有工作拷貝的未版本化檔案,包括那些隱藏在深處的檔案,可以使用svn add的--force遞迴到版本化的目錄下:

$ svn add * --force

A         foo.c

A         somedir/bar.c

A         otherdir/docs/baz.doc。SVN子命令add的用法介紹講解完畢。

 

svn add *

svn add */**/*
等同於
svn add * --force

 

文章來源:良玉的部落格 http://www.uouo123.com/