<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    修改SVN中文件的可執行屬性

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    博文來自下面路徑,轉載請注明原出處:

    http://bigwhite.blogbus.com/logs/74568031.html

     

    修改SVN中文件的可執行屬性 - [開源世界]

    Tag:開源世界 Subversion

    版權聲明:轉載時請以超鏈接形式標明文章原始出處和作者信息及本聲明
    http://bigwhite.blogbus.com/logs/74568031.html

    今天做了一些項目版本庫的搭建工作,主要是將相關模塊和庫目錄建立好,將Makefile編寫好,并添加到SVN庫中。

    工作接近尾聲時,無意中發現提交到SVN庫中的文件居然都帶著可執行權限(以下稱x屬性),如:
    -rwxr-xr-x  1 tonybai tonybai    203 2010-04-21 17:26 Makefile*
    這著實讓人覺得別扭!Svn居然記錄了文件的權限信息,至少我以前還沒有關注過這點。

    擺在面前有兩件問題要搞清楚:
    1、我在本地建立的文本文件為何帶上了可執行的權限?
    2、如何將SVN庫中文件的可執行權限屬性去掉?

    我檢查了一下我的Ubuntu Shell設置,沒有顯式設置umask,但是在/etc/profile中Bash默認設置了"umask 022",這樣我新建的文件應該具有-rw-r--r--的權限屬性才對,為什么變成了-rwxr-xr-x了呢? 回想了一下,Makefile是我從其他項目的本地代碼目錄下Copy過來的,難道這個項目的代碼文件原本就攜帶了可執行權限嗎?打開那個本地目錄,ls -l查看了一下,果然所有文本文件都是帶有x權限的。在這個目錄下touch了一個新文件,居然也是攜帶x權限的!回到“主文件夾”,又嘗試touch了一個文件,這個文件卻不帶有x權限!難道與分區有關系?那個項目的本地代碼是放在Windows的FAT32分區下的,這個分區是在Ubuntu啟動后通過點擊分區磁盤符后才mount上的。這個問題我沒有繼續深挖,但原因八九不離十就是Ubuntu在掛接這些分區時傳遞并采用的umask的值與Bash默認配置的值不同。

    事已至此,那如何“亡羊補牢”將SVN庫中存儲的文件的x屬性去掉呢? SVN手冊給了我們一些線索!手冊中談到通過設置svn:executable可以保持文件的x屬性,例如:如果想給SVN庫中的某個文件加上x屬性,可使用:
    svn propset svn:executable on test.c
    執行結果提示:設置屬性 “svn:executable” 于 “test.c”

    查看一下文件屬性:
    -rwxr-xr-x  1 tonybai tonybai   50 2010-09-08 15:44 test.c*

    本地文件已經被加上了x屬性,svn status查看一下,發現svn認為test.c已經發生了改變。svn commit后,test.c就會被加上executable屬性,之后你無論在哪里checkout文件test.c,你都會發現test.c有著x權限。

    如何刪除x權限呢?沒有細致查看手冊之前,我猜想應該執行: "svn propset svn:executable off test.c",結果svn給出提示:
    svn:  警告: 使用 “svn propdel” 關閉屬性 svn:executable;
    設置屬性為 “off” 不會關閉它。

    svn提示我使用svn propdel,再查看一下手冊,的確svn propdel是用于刪除各種prop的正確命令,執行:svn propdel svn:executable test.c
    提示:刪除屬性 “svn:executable” 于 “test.c”。

    使用ls -l查看,test.c的x屬性已經被刪除,如果想刪除svn server端的x屬性,還需進行一次svn commit。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全