SVN屏蔽文件實(shí)現(xiàn)方式

在命令行中,svn 中不像 git 可以使用一個(gè)文件對(duì)倉(cāng)庫(kù)要屏蔽的文件進(jìn)行管理,網(wǎng)上有很多這方面的命令教程:

但這并不是我想要的效果,所以我自己實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的svnignore文件管理來對(duì)svn倉(cāng)庫(kù)中的 status 顯示進(jìn)行管理。
效果即為那些我不想要顯示在 svn status 中的便不顯示。因此我重新寫了一個(gè)命令來達(dá)到此目的。而且當(dāng) status 的結(jié)果很多時(shí),需要上下翻屏比較麻煩,所以我使用了一個(gè)緩存的文件來保存 status 結(jié)果。
具體如下:

  • 將附錄A的代碼copy到 ~/.bashrc 中,并執(zhí)行 命令:source ~/.bashrc
  • 在倉(cāng)庫(kù)下創(chuàng)建一個(gè) .svnignore 文件,文件中每一行為要屏蔽的文件名,不能包含 / !參照附錄B;

附錄A:

CACHE_TMP="$HOME/.cache/tmp"
# 更方便的查看 diff ,同時(shí)保存起來
__init_git_svn(){
    if [ ! -d $CACHE_TMP/git-diff ];then mkdir -p $CACHE_TMP/git-diff;fi
    if [ ! -d $CACHE_TMP/svn-diff ];then mkdir -p $CACHE_TMP/svn-diff;fi
    if [ ! -d $CACHE_TMP/git-st ];then mkdir -p $CACHE_TMP/git-st;fi
    if [ ! -d $CACHE_TMP/svn-st ];then mkdir -p $CACHE_TMP/svn-st;fi
}
gdf(){ __init_git_svn; now=`date +%Y%m%d-%H%M%S`.log;fl=$CACHE_TMP/git-diff/$now;git diff $@ > $fl;vim -M $fl; }
sdf(){ __init_git_svn; now=`date +%Y%m%d-%H%M%S`.log;fl=$CACHE_TMP/svn-diff/$now;svn diff $@ > $fl;vim -M $fl; }

gsg(){ __init_git_svn; now=`date +%Y%m%d-%H%M%S`.log;fl=$CACHE_TMP/git-st/$now;git status $@ > $fl;vim -M $fl; }
ssg(){ __init_git_svn; now=`date +%Y%m%d-%H%M%S`.log; fl=$CACHE_TMP/svn-st/$now; fl0=$fl".log";
    svn status $@ > $fl0
    cat ".svnignore" | while read line;do
        if [ -z $line ];then continue;fi;
        echo "$line"x| grep -q "^\s";test $? -eq 0 && continue
        sed "/$line/d" $fl0 > $fl;
        mv $fl $fl0;
    done
    mv $fl0 $fl;
    vim -M $fl;
}

dif(){ diff -y $@ | less; }
# 清除所有l(wèi)og
alias gdfclear="rm $CACHE_TMP/git-diff/*"
alias sdfclear="rm $CACHE_TMP/svn-diff/*"
alias gdfls="ls $CACHE_TMP/git-diff/"
alias sdfls="ls $CACHE_TMP/svn-diff/"
alias gst="git status"
# svn 只顯示修改
alias sst="svn status"
alias ssq="svn status -q"

查看無 屏蔽文件效果的 svn status 使用 ssg 命令替代!

附錄B(文件 .svnignore 的內(nèi)容):

log
update
sh.sh
stop
tmp_eval_file.c
.svnignore
start
tmp
.workspace.vim
dat
null
act_20378.txt
act_20379.py
act_20378.py
ls.cfg
config_ls.cfg
tags

切記,此文件不能出現(xiàn)斜杠 / 字符!這也是一個(gè)不完善的地方,還請(qǐng)大神指點(diǎn)如何解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評(píng)論 19 139
  • SVN SVN使用 基本操作svn checkout:把項(xiàng)目源碼下載到本地,只需要做一次svn update:將本...
    彼岸的黑色曼陀羅閱讀 1,750評(píng)論 0 4
  • iOS 開發(fā) SVN 版本控制器 更多技術(shù)交流請(qǐng)加群 iOS技術(shù)聯(lián)盟 27512466 SVN是Subversio...
    Sunny_Fight閱讀 8,989評(píng)論 7 63
  • 命令的使用 1、檢出 svn cohttp://路徑(目錄或文件的全路徑)[本地目錄全路徑] --username...
    小李龍彪閱讀 4,534評(píng)論 0 9
  • “好的結(jié)果來自于好的過程?!?職場(chǎng)中人都知道,所有經(jīng)營(yíng)與運(yùn)營(yíng)的目的都是要取得一個(gè)好的結(jié)果,而且有時(shí)好的結(jié)果只有一個(gè)...
    w小郭閱讀 424評(píng)論 0 0

友情鏈接更多精彩內(nèi)容