2012-12-17 43 views
2

我想獲取svn中一組文件的最後修改作者姓名。pysvn給出錯誤:不是工作副本

我在我的機器上檢出了代碼。

在我的腳本中,所有文件的絕對路徑都在列表中讀取。我正在嘗試使用以下代碼爲每個文件提取最後編輯的作者。

for file in all_files: 
    dir = os.path.dirname(file) 
    entry = client.info(dir) 
    print "Folder:"+dir+" And author:"+entry['commit_author'] 

但我收到以下錯誤:

File "test_main.py", line 110, in main 
entry = client.info(dir) 
pysvn._pysvn.ClientError: '.' is not a working copy 

我試圖讓整個文件名作爲參數爲client.info()得到了相同的結果。

這可能是一個非常簡單的問題,但我是python的新手,所以無法弄清楚。

編輯:

我試着硬編碼的文件夾路徑爲:

temp = "/home/gajananh/scripts/test/repo/test_proj/src"; 
    entry = client.info(temp) 
    print "Folder:"+dir+" And author:"+entry['commit_author'] 

和它的作品!

在我的第一個腳本中,當我試圖在循環中打印dir變量時,它會打印正確的路徑。當我嘗試在shell的輸出上運行svn info命令時,我得到了正確的結果。

我無法理解這個謎團。請幫忙。

+0

我的猜測是你的問題是少談Python和更多的svn:http://stackoverflow.com/questions/5869173/svn-warning-is-not-a-working-copy –

+0

@DrewV請看看編輯。我認爲這個問題不在SVN中。 – CCoder

回答

0

我覺得for file in all_files:返回相對路徑的文件,比如./file.txt

當您運行os.path.dirname(file),返回的將只是一個路徑「」 (點)作爲svn的參數給出。

嘗試在調用函數時使用完整路徑。

+0

all_files包含絕對路徑。我已經打印了變量目錄,它很好。 – CCoder

+0

嘗試打印os.path.dirname的輸出。 – ATOzTOA

+0

正如我已經提到的問題,它打印正確.. – CCoder

相關問題