sklep Subversion, rozważając przejście na Mercurial, próbując dowiedzieć się z wyprzedzeniem, jakie będą wszystkie skargi od deweloperów. Jest jeden dość powszechny przypadek użycia, którego nie rozumiem.Wykonując bez częściowego zatwierdzenia "Mercurial Way"
- pracuję na jakiejś sporej funkcji i mam znaczną część kodu - lub ewentualnie kilka znaczących części kodu - w kawałkach na podłodze garażu, całkowicie nieprzydatne dla sprawdzenia, może nawet nie kompiluje.
- Pojawia się pilna prośba o naprawę błędów. Poprawka jest dobra i lokalna i nie dotyka żadnego kodu, nad którym pracowałem.
- Naprawiam poprawkę w mojej kopii roboczej.
Co teraz?
Przyjrzałem się "Mercurial cherry picking changes for commit" i "best practices in mercurial: branch vs. clone, and partial merges?", a wszystkie sugestie wydają się być rozszerzeniami o różnym stopniu złożoności, od Record i Shelve do Queues.
Fakt, że najwyraźniej nie ma w tym żadnej podstawowej funkcjonalności, sprawia, że podejrzewam, że w pewnym sensie ten styl roboczy działa nieprawidłowo. Jak wyglądałoby podobne do Mercurial rozwiązanie tego przypadku użycia?
Edited by dodać: git, przeciwnie, wydaje się przeznaczony do tego obiegu: git add
o naprawienie plików, nie git add
cokolwiek innego (lub git reset HEAD
cokolwiek mogło już dodane), git commit
.
Krótkotrwałe lokalne oddziały i Kolejki są z pewnością "podstawową funkcjonalnością". Brak "zatwierdzonej" opcji w tym przypadku powinien być po prostu interpretowany jako walidacja wielu stylów pracy, a nie ich odrzucanie. –
Powinieneś również spojrzeć na [Jaki jest najłatwiejszy sposób zatwierdzenia i wypchnięcia pojedynczego pliku] (http://stackoverflow.com/questions/125272/using-mercurial-whats-the-easiest-way-to-commit-and- push-a-single-file-while-le) – Casebash