目前,我在一臺Windows服務器上運行一個Apache Web服務器,該服務器託管了一些有關誰具有寫入和/或讀取權限的單獨設置的存儲庫。身份驗證將針對我們的Active Directory完成,以便用戶可以像平常一樣使用其普通憑據。到目前爲止,一切正常,每個人都很開心。從什麼時候以及爲什麼SVN Author與SVN登錄不同?
但現在一個同事看到了一個有趣的效果,我可以很容易地在香草基地重現:
內的一個倉庫她(讓她打電話愛麗絲)具有讀/寫訪問和另外一個人(允許稱他爲鮑勃)只有讀取權限。 Bob在代碼中發現了一個錯誤並修復了它。當他試圖提交更改時,存儲庫拒絕導致錯誤憑據的原因。所以鮑勃叫愛麗絲過來。他檢查了代碼,發現它沒問題,他再次點擊了提交按鈕。保存的憑證再次失敗,並且Alice輸入了她的憑據(未點擊保存複選框),並且數據已提交到存儲庫。
一切如預期,大家很開心工作......
但隨後愛麗絲看了看到庫中的顛覆日誌和筆者認爲具體承諾不是她,這是鮑勃。
如此看來,TortoiseSVN的沒有采取登錄憑證,如作者,而是採取了當前登錄的用戶在Windows 7機器上。
愛麗絲告訴我,這我很驚訝,並設置有兩個用戶在服務器上的空庫(我正常的Windows帳戶爲只讀,一些特殊的帳戶具有讀/寫訪問)。我使用正常的Windows憑據檢出了存儲庫,添加了一個文件並嘗試提交它。它在第一次運行時失敗,並在應用特殊帳戶的憑證後將該文件添加到回購站中。但是回購中的作者是我的正常賬戶而不是特殊賬戶!相比之下,在Apache日誌中,我可以看到該文件實際上是由特殊帳戶提交的,並且事先嚐試使用正常帳戶失敗。
由於我嘗試了一個新創建的倉庫,他們沒有可能導致這個問題的鉤子,他們也沒有重寫規則或其他運行在Apache服務器上的可能導致問題的東西。
所有這些測試都是在Windows 7機器上使用Tortoise 1.7.3 - 1.7.5完成的,結果完全相同。然後我發現一臺老機器運行Windows XP和Tortoise 1.6.5,並試圖從他們的相同的情況。這裏的行爲是不同的!
結論是Windows 7上的Tortoise 1.7.x使用與Windows XP上的Tortoise 1.6.5不同的作者,但在Tortoise的更改日誌或發行說明中,我找不到此更改的任何信息。
還有其他人也已經注意到這種變化,並存在他們的方式將其切換回舊的行爲?
您確定它是從當前登錄的用戶獲取作者信息,而不是簡單地從用於檢出存儲庫的SVN帳戶獲取信息嗎?再次嘗試您的測試,除非Bob執行結賬並註銷。然後,以Carol身份登錄(擁有與Bob相同的權限),修改工作副本並使用Alice的憑據進行提交。如果作者被列爲Bob,則作者信息來自Subversion元數據。如果Carol被列出,那麼它使用當前登錄的用戶。 – bta 2012-02-23 19:27:09