2012-02-23 82 views
0

目前,我在一臺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的更改日誌或發行說明中,我找不到此更改的任何信息。

還有其他人也已經注意到這種變化,並存在他們的方式將其切換回舊的行爲?

+0

您確定它是從當前登錄的用戶獲取作者信息,而不是簡單地從用於檢出存儲庫的SVN帳戶獲取信息嗎?再次嘗試您的測試,除非Bob執行結賬並註銷。然後,以Carol身份登錄(擁有與Bob相同的權限),修改工作副本並使用Alice的憑據進行提交。如果作者被列爲Bob,則作者信息來自Subversion元數據。如果Carol被列出,那麼它使用當前登錄的用戶。 – bta 2012-02-23 19:27:09

回答

0

從BTA獲得評論後,我做多一點嘗試和知道我理解如何以及何時筆者將設置:

顯示爲作家顛覆日誌內由第一確定的名稱在點擊提交對話框的確定​​按鈕後輸入成功的用戶認證,無論該用戶是否有權寫入Subversion存儲庫。如果用戶沒有寫權限,則用戶身份驗證對話框將第二次顯示要求提供寫入憑據。

通常大家打保存認證複選框,這導致了事實,烏龜總是試圖使用這些憑據,犯下導致認證成功,填補了筆者的數據,但未能進行寫入。會導致詢問用戶獲得第二認證以獲取寫入權限。

我在Windows 7上做了這個測試,只用了Tortoise 1.7.5,所以我不知道這個行爲在XP上與Tortoise 1.6.x是否真的不同,但至少我明白了Tortoise如何設置作者。

相關問題