Hi, thank you very much for investigating this. These are the steps to reproduce:
1. Clone a git repo (e.g. https://github.com/Uko/VnaExporter.git <https://github.com/Uko/VnaExporter.git>) 2. Add it as gitfiletree repo to the pharo image. 3. Change something, commit part of the changes with Komitter. 4. Change something more. 5. Open Komitter, you should see a strange diff. 6. Select 1 or 2 methods & commit them. 7. Now you should have only 2 methods in your repo. Uko > On 07 Apr 2015, at 07:26, Thierry Goubier <[email protected]> wrote: > > Hi Uko, > > I had a look at Komitter and couldn't find anything wrong there. Yes, it base > the patch on an ancestor as per Monticello, prepare the snapshot and save it > to the repository; but the only way the repository would loose some methods > is that inside MC, the ancestor is already wrong. > > Could you show me or help me reproduce the effect? > > Thierry > > Le 06/04/2015 19:37, Yuriy Tymchuk a écrit : >> I guess so. Also partially because how monticello works and how >> komitter uses it. As far as I understand, Komitter generates a diff, >> then you select which changes you want to commit and then it somehow >> commits the ancestor with selected changes applied. So if you say >> that the actual ancestor in a wrong one and user will deselect some >> changes - Komitter will commit the old thing + selected new changes. >> >> Maybe it’s a problem of Komitter. On the other hand maybe doing it >> correctly is too complicated because of how monticello works. >> >> Uko >> >>> On 06 Apr 2015, at 18:58, Thierry Goubier >>> <[email protected]> wrote: >>> >>> Hi Uko, >>> >>> Le 06/04/2015 18:48, Yuriy Tymchuk a écrit : >>>> Actually there is a bigger problem… Because of hot gitfiletree >>>> finds the ancestor (which is one of the previous ancestors) >>>> Komitter commits the changes related to that ancestor. >>>> >>>> E.g. it shows you that you’ve added two methods (while in fact >>>> you’ve modified them, but they were not present in the previous >>>> ancestor) and you select to commit only one of them, then one >>>> method will be committed and one deleted. >>> >>> Can you explain a bit? Is it because GitFileTree only uses git to >>> determine the ancestors? >>> >>> Thierry >>> >> >> >> >> > >
