我有一個在code.google.com上託管的開源應用程序。它是跨平臺的(Linux/Windows/Mac)。我使用TortiseSVN從WinXP機器上傳代碼,似乎沒有任何用於linux版本的「配置」批處理文件設置了它們的「執行」位。使用TortiseSVN或命令行在SVN「執行」位設置SVN
什麼是最簡單的方法來設置這些需要它們的文件?我想,使用TortiseSVN會更容易,但如果不能使用,那麼我也可以在我的linux機器上使用命令行SVN。
我有一個在code.google.com上託管的開源應用程序。它是跨平臺的(Linux/Windows/Mac)。我使用TortiseSVN從WinXP機器上傳代碼,似乎沒有任何用於linux版本的「配置」批處理文件設置了它們的「執行」位。使用TortiseSVN或命令行在SVN「執行」位設置SVN
什麼是最簡單的方法來設置這些需要它們的文件?我想,使用TortiseSVN會更容易,但如果不能使用,那麼我也可以在我的linux機器上使用命令行SVN。
隨着烏龜SVN,這是相當簡單:你可以選擇多個文件(可能來自搜索結果,因此它們不必位於相同的目錄中),在TortoiseSVN菜單中選擇「屬性」,添加所需的屬性(有一個主要使用的下拉列表屬性,在本例中爲「svn:executable」)並設置值(在本例中爲「*」)。如果提交更改後的文件並在linux下檢查它們,可執行位將被設置。
如果您想一次設置多個屬性,可能會更安全(如果出現錯誤)首先爲一個文件正確設置屬性,將它們導出到文件中,選擇所有需要的文件,然後選擇「屬性」菜單並導入以前保存的屬性。
這裏是如何做到這一點的命令行:
for file in `find . -name configure`; do
svn ps svn:executable yes ${file}
done
或者只是一個文件(configure
是文件名在這裏):
svn ps svn:executable yes configure
find . -type f -name "*.bat" -exec svn propset svn:executable yes "${}" \;
當然也是如此.EXE等
在Unix平臺上使用{}到ADRESS resulset:
find . -type f -name "*.bat" -exec svn propset svn:executable yes '{}' \;
有誰知道爲什麼這個屬性要求 「是」 爲有效論據? 發現「」,而不是是另一個例子,工作太...
,用於恢復SVN導入過程中丟失的可執行權限方法:從原始來源,你的svn導入期間使用
複製權限(電流DIR到VERSION1):
find . -type f | xargs -I {} chmod --reference {} ../version1/{}
然後設置svn:可執行文件,使用下面的shell腳本的所有可執行文件:
for file in `find . -executable -type f`; do
svn ps svn:executable yes ${file}
done
你冷杉st版本將失敗的任何路徑或文件名與空白... – tobyodavies 2011-08-09 04:36:40
您也可以使用propset的文件列表 - 請參閱http://stackoverflow.com/a/5757365/134647 – khedron 2012-08-23 15:51:46
請注意,要清除可執行的位必須使用svn propdel svn:可執行文件。你不能只將它設置爲「否」。 –
2012-09-09 21:30:29