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
>>> 
>> 
>> 
>> 
>> 
> 
> 

Reply via email to