2014-11-21 71 views
0

我有我想要添加的SourceSafe通過命令行來添加文件到具體項目目錄

就拿一個文件的列表:

project_dir/nextdir/moredir/test.txt 

我再要添加到VSS這一點,原本我試圖

ss Add "project_dir/nextdir/moredir/test.txt" 

這個問題是這樣的添加文件「test.txt」的任何目錄我已經設置爲當實際我想我的工作目錄和文件目錄到我的「工作目錄」鏡子。所以,我卻

$/SS_Project/test.txt 

我想

$/SS_Project/project_dir/nextdir/moredir/test.txt 

反正先用 「SS CP /SS_Project/project_dir/nextdir/moredir/test.txt」 這樣沒有

謝謝你的幫助

回答

0

我結束了使用bash腳本,看起來像一個非常圓房子的方法。我相信有人可以提供更好的答案,但作爲解決方法。

以下函數獲取需要添加的文件列表,並將它們添加到Source Safe中相應的目錄中。如果文件存在於sourcesafe中尚不存在的目錄中,則該目錄會自動添加

用法示例(而在項目的根目錄):

SSAddEachNewFile file1.txt file2.txt folder1/file3.txt folder1/morefolder/file4.txt 

會FILE1.TXT FILE2.TXT文件夾1/file3.txt文件夾1/morefolder/file4.txt添加到

$ /項目/電流/ myproject的/ FILE1.TXT
$ /項目/電流/ myproject的/ FILE2.TXT
$ /項目/電流/ myproject的/文件夾1/file3.txt
$ /項目/電流/ myproject的/文件夾1/morefolder /文件4 .txt

Bash函數:

SSAddEachNewFile() 
{ 
printf "\n\nAdding files requires us to loop, so we can add to the correct directory" 

for file in $1; do 

printf "\n--Resetting Dir---\n" 
cd %CURRENT_PROJECT_WORKING_DIR 
quietsset 
printf " ----\n\n" 
new_file=$(echo ${file##*/}) 
directory=$(echo ${file%/*}) 


#cp to folder 
echo "Directory is: $directory" 
quietsset 
test=$(ss CP $directory 2>&1 | grep -c 'exist' 2>&1) 


if (("1"== $test)); 
then 
echo "Did not to find directory! It does not exist!....yet :)"; 

new_directory=$directory; 
last_directory=$directory; 
while (("1"== $test)); 
do 
    echo "->This parent directory does not exist, try going up"; 
    echo "---trying to cp to $new_directory" 
    last_directory=$(echo ${new_directory}) 
    new_directory=$(echo ${new_directory%/*}) 

    quietsset 
    test=$(ss CP $new_directory 2>&1 | grep -c 'exist' 2>&1) 

    echo "[+]" 
done 

echo "Directory does not exit, need to add $last_directory"; 
ss Add $last_directory -R -C"$SS_COMMENT" -Y$SSNAME 

else 
echo "Directory already exists, need to add file: ${file}"; 
ss Add $file -C"$SS_COMMENT" -Y$SSNAME 
fi 



done 

}

它需要一個額外的功能和2個環境變量

quietsset() 
{ 
    ss CP $CURRENT_SOURCE_SAFE_PROJECT -O- 
} 

其中$ CURRENT_SOURCE_SAFE_PROJECT是您的SS根和$%CURRENT_PROJECT_WORKING_DIR是你的工作目錄的根。

例如如果你有project/current/myproject並且你簽出了「myproject」文件夾結構。然後你

CURRENT_SOURCE_SAFE_PROJECT = $ /項目/電流/ myproject的 和 CURRENT_PROJECT_WORKING_DIR = C /哪裏/你/把/ myproject的

相關問題