Re: WinCvs install script and MarkResolved macro

"Jerzy Kaczorowski" <[email protected]>
Newsgroups gmane.comp.version-control.cvs.gui.devel
Message-ID <[email protected]>
Oliver,

>That's of course the (little) drawback of maintaining distinct groups
>of installable macros from the same source directory. The file names
>now have to be explicitly specified in the installer, so one has to make
>sure none are missed...

That isn't that much of the problem. It would be easier if you wrote the
Python replacements for all TCL macros - we could simply use the *.tcl
wildcard for the obsolete macros and *.py for the new ones ;)

>Good idea. We should hold back the "bare" installer until that
>is implemented, though.

I wil probably do that one just before we are ready for 1.3b15.

>I'd rather leave it in so I don't accidentally mark a file as
>resolved that isn't at least 99% sure to be so

As far as CVS is concerned conflict is resolved once the file if "touched"
and it's timestamp differs from the one in the conflict entry info. The
modification of Entries file is just a "quick hack" to allow easier conflict
resolution for the users without implementing it properly in the GUI code.
That means that for the reason of marking the files as resolved the
timestamp check should always be enought. Once the files is touched it can
be commited by CVS. You don't have to put more restrictions or additional
checks at this point and the GUI won't do that either. Just the timestamp
check.

>(there could of course in theory be unresolved conflicts without conflict
>markers if the person doing the resolving just removed the markers but
>not the conflict).

That means resolved conflict in the CVS sense because you have to save the
files to remove the markers.

>I'm actually still thinking of removing the recursive mechanism,
>so as to make it an even more conscious action: only explicitly
>selected files will be marked as resolved - in that case I could
>probably skip the marker-scanning indeed.

I was hoping that it will be totally automatic action really ;)

Let me explain. Here is the workflow example:
1. User updates his sandbox by using "cvs update" and gets conflicts.
2. He goes around and resolves the conflicts - that is he looks at the files
and at least "touches" the file so the timestamp is modified.
3. That makes the conflict resolved from CVS point of view (regardless the
conflict markers)
4. User get's annoyed and confused as to which conflicts he has resolved
already.
5. He installs CvsIn and creates the VC++ project and adds his files to it
and checks - all resolved conflicts are marked with "R" icon... Just kidding
;)
5. (really) He runs the "Mark resolved" macro which finds the resolved
conflicts and changes the entries files to help WinCvs to recognize the
fact. WinCvs no longer detects the conflict but thinks that the files is
simply modified. Crude but it does the job - user can continue to search and
resolve any remaining conflicts.
6. He commits.

As you can see there is no "brute force" approach - we do not artificially
convince CVS that conflict was resolved. We are just helping GUI to stop
seeing the resolved conflicts which enables the user to find and fix all
conflicts. That means we don't have to search for conflict markers - that's
what the second macro is for.

>- the indicator should not be labeled "Resolved" but rather "Resolving"
>or something like that - only files that were consciously marked as
>resolved by the user should be labeled thus.

From the above analisys you can see that the file is never in the
"resolving" state on the disk - it's either in conflict state or resolved
state.

>- introducing the "Resolving" state must also result in the exclusion of
>the "Conflict" state from the group of Committable states for the
>filters: CVS will *not* allow you to commit "real" conflict files.

Naturally. We will have to change the icon for conflict to indicate it's
special meaninng.

>>It could be called "Search CVS Conflict markers" or something similiar.
>>
> (...) It would basically be a "simulated" run of the macro I have now with
slightly
>reworded reports. Do you think that version of the macro should scan files
that are
>not reported as having conflicts (by the Entries API) as well?

Yes, it should scan all selection, both modified and unmodified files. We
want to know whether there are any conflict markers in the code. It may be
that our co-worker commited file with markers in it - it will be a normal,
unmodified file in every sandbox. To find that you have to scan all selected
files/folders.

To summarize, we would have two logical operations/macros:
1. Find and mark the resolved conflicts - checks the timestamp of all files
that have the conflict indicated in the entries file.
2. Find all files containing the conflict markers in it's contents -
regardless of the timestamp.

At least that is what I was imagining ;)

Best Regards,
Jerzy

------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/NhFolB/TM
---------------------------------------------------------------------~->

To unsubscribe from this group, send an email to:
[email protected]

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.