| 
Created on 2008-01-09.02:28:54 by markstos, last changed 2010-06-15.21:20:14 by admin. 
 
  
   | msg2374 (view) | Author: markstos | Date: 2008-01-09.02:28:53 |  |  
   | This bug report can be illustrated with the shell script uploaded through issue578.
The result is that after going through the Steve and Monica example from DarcsTwo, 
"darcs changes" reports that one conflicting patch contains no content at all!
That's definitely different than darcs-1, and looks like a bug to me. 
Example:
#####
$ darcs changes -s
Tue Jan  8 21:06:50 EST 2008  steve
  * Bnote
    M ./foo -1 +1
Tue Jan  8 21:06:49 EST 2008  steve
  * Anote
Tue Jan  8 21:06:50 EST 2008  monica
  * AZnote
    A ./bar
    A ./foo |  
   | msg2486 (view) | Author: daveroundy | Date: 2008-01-14.21:05:33 |  |  
   | I see.  This is because these are actually not conflicting changes,
but duplicate changes (which in darcs-2 are distinct).  I'm not sure
how best to summarize duplicate changes.
In one sense, the current behavior seems good:  this patch actually
has no effect, and file foo is only added once, so we only display
once that it's been added.
But on the other hand, it's also pretty useless:  we can't see what
change this patch represents!  :(
So it does seem that some summarization of duplicate changes would be
wise, but they aren't conflicts, so we don't want to mark them as
such, and I'm not sure how we *should* mark them.  :(  Ideas?
David |  
   | msg2487 (view) | Author: daveroundy | Date: 2008-01-14.21:05:43 |  |  
   | I see.  This is because these are actually not conflicting changes,
but duplicate changes (which in darcs-2 are distinct).  I'm not sure
how best to summarize duplicate changes.
In one sense, the current behavior seems good:  this patch actually
has no effect, and file foo is only added once, so we only display
once that it's been added.
But on the other hand, it's also pretty useless:  we can't see what
change this patch represents!  :(
So it does seem that some summarization of duplicate changes would be
wise, but they aren't conflicts, so we don't want to mark them as
such, and I'm not sure how we *should* mark them.  :(  Ideas?
David |  
   | msg2489 (view) | Author: markstos | Date: 2008-01-14.21:49:40 |  |  
   | David Roundy wrote:
> David Roundy <daveroundy@gmail.com> added the comment:
> 
> I see.  This is because these are actually not conflicting changes,
> but duplicate changes (which in darcs-2 are distinct).  I'm not sure
> how best to summarize duplicate changes.
> 
> In one sense, the current behavior seems good:  this patch actually
> has no effect, and file foo is only added once, so we only display
> once that it's been added.
> 
> But on the other hand, it's also pretty useless:  we can't see what
> change this patch represents!  :(
> 
> So it does seem that some summarization of duplicate changes would be
> wise, but they aren't conflicts, so we don't want to mark them as
> such, and I'm not sure how we *should* mark them.  :(  Ideas?
I think the change should reflect the effect of the patch in the absence 
of duplicates.
Showing the "dopple" as containing a change and the "ganger" as 
containing nothing is contextual. If the "dopple" patch as removed, then 
the "ganger" patch would start to reflect the change I suppose. (And 
this current behavior seems confusing).
I think it's fine if the effect of duplicate patches is duplicated in 
"changes". From a user's perspective, this seems "correct" because both 
patches did indeed contain a change, even if they cancel each other out.
<pauses>
What about another status letter, like "D" for duplicate, indicating 
that there is something different about the primitive patch? I'm not 
sure that's necessary, and could cause further confusion when part of a 
file contains a duplicate change, and part of it contains a "real" change.
   Mark |  
   | msg2490 (view) | Author: droundy | Date: 2008-01-14.22:00:41 |  |  
   | On Mon, Jan 14, 2008 at 09:49:42PM -0000, Mark Stosberg wrote:
> What about another status letter, like "D" for duplicate, indicating that
> there is something different about the primitive patch? I'm not sure
> that's necessary, and could cause further confusion when part of a file
> contains a duplicate change, and part of it contains a "real" change.
The trouble is that the duplicate patches may not be possible at the
current patch position in history.  e.g. if we have three changes
ab1: renames a to b
ab2: renames a to b
bc:  renames b to c
then if we have these three changes in the order ab1 bc ab2, then the
summary would look like
ab1: a -> b
bc:  b -> c
ab2: a -> b (duplicate)
The summary of ab2 seems like nonsense if you don't include the fact that
it's a duplicate, since there is no file named "a" to rename to "b".
I'm just not sure what would be the best approach here.  :(
-- 
David Roundy
Department of Physics
Oregon State University |  
   | msg2491 (view) | Author: markstos | Date: 2008-01-14.22:00:51 |  |  
   | David Roundy wrote:
> David Roundy <daveroundy@gmail.com> added the comment:
> 
> I see.  This is because these are actually not conflicting changes,
> but duplicate changes (which in darcs-2 are distinct).  I'm not sure
> how best to summarize duplicate changes.
> 
> In one sense, the current behavior seems good:  this patch actually
> has no effect, and file foo is only added once, so we only display
> once that it's been added.
> 
> But on the other hand, it's also pretty useless:  we can't see what
> change this patch represents!  :(
> 
> So it does seem that some summarization of duplicate changes would be
> wise, but they aren't conflicts, so we don't want to mark them as
> such, and I'm not sure how we *should* mark them.  :(  Ideas?
I think the change should reflect the effect of the patch in the absence 
of duplicates.
Showing the "dopple" as containing a change and the "ganger" as 
containing nothing is contextual. If the "dopple" patch as removed, then 
the "ganger" patch would start to reflect the change I suppose. (And 
this current behavior seems confusing).
I think it's fine if the effect of duplicate patches is duplicated in 
"changes". From a user's perspective, this seems "correct" because both 
patches did indeed contain a change, even if they cancel each other out.
<pauses>
What about another status letter, like "D" for duplicate, indicating 
that there is something different about the primitive patch? I'm not 
sure that's necessary, and could cause further confusion when part of a 
file contains a duplicate change, and part of it contains a "real" change.
   Mark |  
   | msg2492 (view) | Author: droundy | Date: 2008-01-14.22:01:00 |  |  
   | On Mon, Jan 14, 2008 at 09:49:42PM -0000, Mark Stosberg wrote:
> What about another status letter, like "D" for duplicate, indicating that
> there is something different about the primitive patch? I'm not sure
> that's necessary, and could cause further confusion when part of a file
> contains a duplicate change, and part of it contains a "real" change.
The trouble is that the duplicate patches may not be possible at the
current patch position in history.  e.g. if we have three changes
ab1: renames a to b
ab2: renames a to b
bc:  renames b to c
then if we have these three changes in the order ab1 bc ab2, then the
summary would look like
ab1: a -> b
bc:  b -> c
ab2: a -> b (duplicate)
The summary of ab2 seems like nonsense if you don't include the fact that
it's a duplicate, since there is no file named "a" to rename to "b".
I'm just not sure what would be the best approach here.  :(
-- 
David Roundy
Department of Physics
Oregon State University |  
   | msg2499 (view) | Author: markstos | Date: 2008-01-14.22:43:02 |  |  
   | > I'm just not sure what would be the best approach here.  :(
Could we just mark one as a duplicate, sort of like you did?
The edge case is when there are two primitives in a file, and one is a 
duplicate and the other isn't. It might need two entries in "changes":
  M ./foo -1 +1 (duplicate)
  M ./foo -1 +1
Or maybe that should be:
  M ./foo -1 +1 (some duplicate changes)
Using another letter or two like "M" for this purpose seems to be the 
most consistent.
We could also solicit darcs-users for comments.
  Mark |  
   | msg2500 (view) | Author: markstos | Date: 2008-01-14.22:43:06 |  |  
   | > I'm just not sure what would be the best approach here.  :(
Could we just mark one as a duplicate, sort of like you did?
The edge case is when there are two primitives in a file, and one is a 
duplicate and the other isn't. It might need two entries in "changes":
  M ./foo -1 +1 (duplicate)
  M ./foo -1 +1
Or maybe that should be:
  M ./foo -1 +1 (some duplicate changes)
Using another letter or two like "M" for this purpose seems to be the 
most consistent.
We could also solicit darcs-users for comments.
  Mark |  
   | msg2503 (view) | Author: droundy | Date: 2008-01-14.22:57:57 |  |  
   | On Mon, Jan 14, 2008 at 10:43:06PM -0000, Mark Stosberg wrote:
> > I'm just not sure what would be the best approach here.  :(
> 
> Could we just mark one as a duplicate, sort of like you did?
Yes, that would be possible.
> Using another letter or two like "M" for this purpose seems to be the 
> most consistent.
I'm not sure that a single letter would be very clear.  It depends how
precise we want to be, I suppose.  For replace patches, we output something
like
  M ./foo -1 +1 r 1
so we might do something like this
  M ./foo -1 +1 r 1 d 2
but this is getting pretty obscure-looking.
> We could also solicit darcs-users for comments.
Not a bad idea.  Would you like to do this?
-- 
David Roundy
Department of Physics
Oregon State University |  
   | msg2504 (view) | Author: droundy | Date: 2008-01-14.22:58:01 |  |  
   | On Mon, Jan 14, 2008 at 10:43:06PM -0000, Mark Stosberg wrote:
> > I'm just not sure what would be the best approach here.  :(
> 
> Could we just mark one as a duplicate, sort of like you did?
Yes, that would be possible.
> Using another letter or two like "M" for this purpose seems to be the 
> most consistent.
I'm not sure that a single letter would be very clear.  It depends how
precise we want to be, I suppose.  For replace patches, we output something
like
  M ./foo -1 +1 r 1
so we might do something like this
  M ./foo -1 +1 r 1 d 2
but this is getting pretty obscure-looking.
> We could also solicit darcs-users for comments.
Not a bad idea.  Would you like to do this?
-- 
David Roundy
Department of Physics
Oregon State University |  
   | msg2524 (view) | Author: ertai | Date: 2008-01-15.16:41:24 |  |  
   | The solution, that I prefer is one of Mark Stosberg.
Adding (duplicate) to the summary:
M ./foo -1 +1 (duplicate)
And when there is a mix of duplicates and not duplicated changes:
M ./foo -1 +1 (some duplicate changes) |  
   | msg2525 (view) | Author: kowey | Date: 2008-01-15.16:47:47 |  |  
   | How about adding xN to all occurences, where xN indicates that the change occurs
in N places?
Tue Jan  8 21:06:50 EST 2008  steve
  * Bnote
    M ./foo -1 +1
Tue Jan  8 21:06:49 EST 2008  steve
  * Anote
    A ./foo x2
Tue Jan  8 21:06:50 EST 2008  monica
  * AZnote
    A ./bar
    A ./foo x2 |  
   | msg2526 (view) | Author: kowey | Date: 2008-01-15.16:49:49 |  |  
   | Sorry, I just realised that's this is pretty much what David proposed :-) |  
   | msg2527 (view) | Author: markstos | Date: 2008-01-15.16:57:12 |  |  
   | Eric Kow wrote:
> Eric Kow <eric.kow@gmail.com> added the comment:
> 
> How about adding xN to all occurences, where xN indicates that the change occurs
> in N places?
> 
> Tue Jan  8 21:06:50 EST 2008  steve
>   * Bnote
> 
>     M ./foo -1 +1
> 
> Tue Jan  8 21:06:49 EST 2008  steve
>   * Anote
> 
>     A ./foo x2
> 
> Tue Jan  8 21:06:50 EST 2008  monica
>   * AZnote
> 
>     A ./bar
>     A ./foo x2
I find this not as clear. I might need to crack open the manual to find 
out what "x2" means, while "(duplicate changes)" or the like is 
immediately clear.
However, you could argue that this is consistent with the single letter 
codes like "A" and "M" which may need to be looked up, although these 
will be familiar to users of other SCM systems, while a notation about 
duplicates will not be.
    Mark |  
   | msg2528 (view) | Author: markstos | Date: 2008-01-15.16:57:18 |  |  
   | Eric Kow wrote:
> Eric Kow <eric.kow@gmail.com> added the comment:
> 
> How about adding xN to all occurences, where xN indicates that the change occurs
> in N places?
> 
> Tue Jan  8 21:06:50 EST 2008  steve
>   * Bnote
> 
>     M ./foo -1 +1
> 
> Tue Jan  8 21:06:49 EST 2008  steve
>   * Anote
> 
>     A ./foo x2
> 
> Tue Jan  8 21:06:50 EST 2008  monica
>   * AZnote
> 
>     A ./bar
>     A ./foo x2
I find this not as clear. I might need to crack open the manual to find 
out what "x2" means, while "(duplicate changes)" or the like is 
immediately clear.
However, you could argue that this is consistent with the single letter 
codes like "A" and "M" which may need to be looked up, although these 
will be familiar to users of other SCM systems, while a notation about 
duplicates will not be.
    Mark |  
   | msg3937 (view) | Author: droundy | Date: 2008-03-20.17:49:56 |  |  
   | Resolved by
Thu Mar 20 13:02:55 EDT 2008  David Roundy <droundy@darcs.net>
  * resolve issue579: display duplicate changes in summary.
  The code here really could use a cleanup.  But this change fixes things so
  you can now see duplicate changes in changes -s.
although apparently the automatic trigger misfired... |  |
 
| Date | User | Action | Args |  | 2008-01-09 02:28:55 | markstos | create |  |  | 2008-01-14 21:05:39 | daveroundy | set | status: unread -> unknown nosy:
  + daveroundy
 messages:
  + msg2486
 |  | 2008-01-14 21:05:45 | daveroundy | set | messages:
  + msg2487 |  | 2008-01-14 21:49:43 | markstos | set | messages:
  + msg2489 |  | 2008-01-14 22:00:45 | droundy | set | messages:
  + msg2490 |  | 2008-01-14 22:00:53 | markstos | set | messages:
  + msg2491 |  | 2008-01-14 22:01:01 | droundy | set | messages:
  + msg2492 |  | 2008-01-14 22:43:04 | markstos | set | messages:
  + msg2499 |  | 2008-01-14 22:43:06 | markstos | set | messages:
  + msg2500 |  | 2008-01-14 22:57:59 | droundy | set | messages:
  + msg2503 |  | 2008-01-14 22:58:01 | droundy | set | messages:
  + msg2504 |  | 2008-01-15 16:41:27 | ertai | set | nosy:
  + ertai messages:
  + msg2524
 |  | 2008-01-15 16:47:48 | kowey | set | messages:
  + msg2525 |  | 2008-01-15 16:49:51 | kowey | set | messages:
  + msg2526 |  | 2008-01-15 16:57:13 | markstos | set | messages:
  + msg2527 |  | 2008-01-15 16:57:19 | markstos | set | messages:
  + msg2528 |  | 2008-02-08 20:18:38 | markstos | link | issue659 superseder |  | 2008-02-16 18:55:35 | markstos | set | status: unknown -> has-patch nosy:
  droundy, tommy, beschmi, kowey, markstos, daveroundy, ertai
 topic:
  + Confirmed
 |  | 2008-02-21 03:40:27 | markstos | set | topic:
  + Target-2.0 nosy:
  droundy, tommy, beschmi, kowey, markstos, daveroundy, ertai
 |  | 2008-02-21 03:42:42 | markstos | unlink | issue659 superseder |  | 2008-02-26 15:09:35 | droundy | set | nosy:
  droundy, tommy, beschmi, kowey, markstos, daveroundy, ertai title: Darcs2: "changes" shows revised history -> Darcs2: "changes -s" shows revised history
 |  | 2008-03-20 17:50:00 | droundy | set | status: has-patch -> resolved nosy:
  droundy, tommy, beschmi, kowey, markstos, daveroundy, ertai
 messages:
  + msg3937
 |  | 2008-09-28 20:49:43 | admin | set | nosy:
  + dagit, simon, thorkilnaur, - daveroundy |  | 2009-08-06 17:49:32 | admin | set | nosy:
  + jast, Serware, dmitry.kurochkin, darcs-devel, zooko, mornfall, - droundy, ertai |  | 2009-08-06 20:54:25 | admin | set | nosy:
  - beschmi |  | 2009-08-10 22:10:25 | admin | set | nosy:
  + ertai, - darcs-devel, zooko, jast, Serware, mornfall |  | 2009-08-11 00:04:21 | admin | set | nosy:
  - dagit |  | 2009-08-25 17:26:23 | admin | set | nosy:
  + darcs-devel, - simon |  | 2009-08-27 13:56:51 | admin | set | nosy:
  tommy, kowey, markstos, darcs-devel, thorkilnaur, ertai, dmitry.kurochkin |  | 2009-10-23 22:40:34 | admin | set | nosy:
  + nicolas.pouillard, - ertai |  | 2009-10-24 00:05:31 | admin | set | nosy:
  + ertai, - nicolas.pouillard |  | 2010-06-15 21:20:13 | admin | set | milestone: 2.0.x |  | 2010-06-15 21:20:14 | admin | set | topic:
  - Target-2.0 nosy:
  + Serware
 | 
 |