[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: rev 1337 - trunk/subversion/include trunk/subversion/libsvn_wc

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2002-02-20 20:55:41 CET

sussman@tigris.org writes:

> * svn_io.h (svn_io_run_diff3): new prototype.
> * wc.h (SVN_WC__LOG_RUN_DIFF3_MERGE): new prototype.

So here's my breakdown of the work that needs to be done to get things
working. I'm mainly posting this outline of my thoughts for Karl to
read, but I hope they're not too illegible for everyone to
understand. :-)

UPDATE: happening in update_editor.c:svn_wc_install_file()

   3 fulltexts exist: Old, New, Working.

   Write Idempotent Log Commands:

        * copy (as LF, contracted keywords) all three files to tmp area

        * diff3 -Em Working-LF Old-LF New-LF > merged-LF

            if diff3 returned 1, /* conflicts found */
                cp Working Working.working
                cp-and-translate Old Working.old
                cp-and-translate New Working.new
                track all three in entries file
                track timestamp (or MD5) in entries file
                mark entry as Conflicted

        * cp-and-translate merged-LF Working

        * rm 4 files in tmp area

        * mv New Old

--> This implies we need to write a new log-command-func which takes 7
    arguments: {Working-LF, Old-LF, New-LF, merged-LF, Working, Old, New}.

--> This implies that this log command needs to call a new svn_io_*
    routine that runs diff3, passing in {mine, older, yours, output-file}.

--> commit pre-check needs to not look for .rej file anymore, but
    check timestamp or MD5 (if marked as conflicted)

--> commit post-processing (and 'revert') need to cleanup three
    fulltexts if mentioned in entries file, instead of cleaning up
    .rej file.


    It seems like we want to do *exactly* the same thing as update,
    except for the very last step. (We don't want overwrite Old with
    New.) Also, not sure if needs to be loggy, but it certainly could

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:37:09 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.