我在我的項目中使用的唯一分佈式版本控制系統是集市。除了如何結賬外,我對git和mercurial的瞭解不多。我喜歡bazaar的原因是automv插件。它檢測我何時手動移除/刪除文件(來自命令行/ ide等),當我匆忙時我傾向於做很多事情。但集市很慢,我正在考慮轉向混帳。 git有類似於這個功能的東西嗎?git是否具有相當於bazaar automv插件?
2
A
回答
8
Git在移動/重命名情況下的工作方式完全不同。 Git只跟蹤內容,因此它知道文件X在一次提交時具有SHA1散列abc123...
,並且在下一次提交時文件Y碰巧具有相同的散列abc123...
。因此,Git工具在查看歷史記錄或其他內容時得出結論:文件X必須已在此時重命名爲文件名Y.
通過這種方式,Git可以重建從一次提交到下一次提交所採取的操作,而無需在提交時獲得這些知識。它可以事件檢測您重命名文件和更改文件內的某些情況(當然,它不通過比較SHA1哈希值,而是通過在提交中更改的文件之間進行文本比較來完成此操作)。
+0
假設有些微小的變化(例如C#文件中的命名空間聲明),那麼它也足夠聰明地猜測出什麼是動作?會檢查自己,但不能在這檯筆記本電腦上... – 2008-12-23 07:49:37
2
1
只是僅供您參考集市知道移動。 SVN,Git,hg只知道版本和刪除拷貝。我認爲這是一個different。但正如前面提到的那樣,git很好地處理了automv(據我所知),只有在移動後非常迅速地提交纔是非常聰明的。我聽說egit在你重命名一個類後會自動提交。
相關問題
- 1. 是否有與Git默認分支相當的Bazaar?
- 2. 有沒有相當於`git commit --amend`的Bazaar?
- 3. Swift是否具有相當於pdb.set_trace()
- 4. 是否有相當於在GWT中添加JQuery插件?
- 5. jquery是否有相當於dojo.subscribe()?
- 6. 是否有一個相當於git存儲perforce?
- 7. Django是否具有相當於Rails的「捆綁安裝」?
- 8. lua中是否有相當於Boost.Program_options?
- 9. 是否MongoDB的具有總$總和的產品相當於
- 10. 是否有相當於FileTypeImageUtils for Alfresco Share?
- 11. 是否有相當於C++的System.Diagnostics.EventLog?
- 12. Sencha是否有相當於jQuery的Radioset?
- 13. 是否有相當於python的bootstrap.php?
- 14. 是否有相當於OS X的lsusb
- 15. 是否有相當於os.Args()的函數?
- 16. Ember是否具有相當於ruby的method_missing?
- 17. Scala是否具有相當於F#的「類型」?
- 18. Julia是否具有相當於Ans(Matlab)或Last.value(R)
- 19. git相當於'hg serve'?
- 20. 是否有相當於$ sformat的函數?
- 21. 是否有相當於Django Model.objects.filter()的CherryPy?
- 22. jquery是否有相當於dojo.hitch()?
- 23. 是否有相當於webforms的T4MVC?
- 24. 是否有HKEY_Current_User相當於HKey_Classes_Root \ Record?
- 25. 是否有sprintf相當於node.js
- 26. PHP是否有相當於Java的RequestDispatcher.forward?
- 27. 是否有一個Monoid相當於Bifunctor?
- 28. 是否有相當於MATLAB的igraph?
- 29. 是否有相當於Java的Boost :: Python?
- 30. 是否有.bat相當於shell選擇?
我相信bzr的automv插件很受git算法自動檢測重命名文件的影響。 :-) – bialix 2009-04-24 19:40:18