2010-09-01 69 views
0

我期待爲我的團隊實施源代碼管理。出現的一個外部需求是「管理者/潛在客戶」想知道誰檢出了哪個文件以及何時檢出。不是真正的鎖,他們只是想知道什麼時候文件被刪除和由誰刪除。這也是一個表演要求,並且超出了我的控制範圍。我如何知道誰簽出了一個文件?

我主要看着使用Subversion。我想如果我通過Apache使用它,那麼我可以解析HTTP日誌,除非已經有了一個工具,第三方Web日誌分析工具或者直接爲顛覆創建的東西。

任何其他流行的源代碼控制工具,可能有這種功能?

+1

可能重複[是否有Subversion Checkout鉤子或類似的東西?](http://stackoverflow.com/questions/804970/is-there-a-subversion-checkout-hook-or-something-similar) – Jeff 2010-09-01 18:23:21

+5

這聽起來像你的經理想知道誰在給定的文件上正在積極工作。沒有使用鎖定,我不知道你如何得到這個準確的記錄。每個處理給定項目的人都可能會將該文件簽出到其本地存儲庫中,即使這些文件沒有正在處理每個文件。 – 2010-09-01 18:26:56

+0

這是我必須說服他們的另一個故事!一個軟件項目不只是一個文件。是的,我的生活很複雜!大聲笑 – user432024 2010-09-01 18:49:57

回答

3

我作爲一名開發人員會感到某種不適,但是您的「經理人」想要的是一個基於客戶端的「間諜」程序。這可以實現爲eclipse插件,例如收集有關打開和編輯什麼文件的靜態信息等等。

附註:對上級有一定的瞭解。如果他們還沒有經歷過缺乏合格的IT人員,那麼很快他們可能會這樣做。

良好的項目管理應用侵入性較小的方法來收集有關進展和有效性的信息。

+0

「在旁註:對上級有一定的瞭解,如果他們沒有經歷過缺乏合格的IT人員然而,不久之後他們可能會用這樣的課程。「 - 敬酒!大聲笑 – user432024 2010-10-27 19:15:24

3

自由源代碼控制系統並不傾向於向您提供這些信息,因爲它們與服務器斷開連接 - 您可以「獲取」文件,但不必告訴服務器您已將其更改到你來辦理登機手續。這本身就是一個有意思的功能,因爲這意味着你可以在路上,在家等工作,而不會被束縛到中央存儲庫。

鎖可以用於顛覆一些效果來獲得類似的報告,但它不是一個很好的解決方案。它們旨在防止2人同時修改文件,特別是在合併成爲問題的情況下。也就是說,他們實際上並沒有阻止某人在沒有獲得鎖定的情況下檢入文件,因此它們充其量只是一個弱表示,而不是保證。

另外,像git或mercurial這樣的更現代化的分佈式系統甚至都不能開始向您提供這些信息,這些存儲庫位於您的機器上,而不是集中式的,並且鏈接返回原始數據庫的效果最好。考慮一下 - 你有5個本地分支,你報告所有的文件是針對原始文件進行修改的,還是僅僅是活動分支?您可以從已克隆的回購庫中克隆回購,您可以通過多少級別的抽象來進入「主」回購?誰決定,你將如何配置這個主人是什麼? Git等人可以以非常優雅的方式處理所有這些複雜問題,但在這種情況下,「誰檢出了這個文件」幾乎毫無意義。

像TFS和Perforce這樣的老領導確實允許這樣做。但我會好奇他們爲什麼需要這個功能,僅僅因爲有人修改了文件副本並不意味着管理方面的任何事情,分支仍然可以非常有效地使用存儲庫安全保護,任何跟蹤系統如trac或redmine會告訴你誰在做什麼並且完美地與svn集成。

可能有第三方應用程序查找工作副本並將狀態信息上載到中央報告服務器,但我沒有看到。它甚至可能值得一個。

+0

我認爲這是爲了知道誰擁有這些文件。如果我通過Apache使用svn,那麼它只是一個案例或解析HTTP日誌。 我已經向他們解釋鎖定是壞的,我認爲這是通過他們。隨着我們不斷開發並行功能。 然後,我一直試圖說服他們在過去的10年中使用任何形式的scm lol – user432024 2010-09-02 20:23:31

相關問題