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

interactive conflict callbacks

From: Karl Fogel <kfogel_at_red-bean.com>
Date: Fri, 02 May 2008 17:56:57 -0400

I just ran the script below (at the end of this mail, search for "***")
to test the latest interactive conflict resolution prompt behavior of
trunk. Now, independently of what's going on below, David Glasser and I
are talking about changing the prompt that results from "(s)how all".

But before we get there, there's a prompt that exceeds 80 columns:

Conflict discovered in 'iota'.
Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: df
--- .svn/text-base/iota.svn-base Fri May 2 17:52:00 2008
+++ .svn/tmp/tempfile.tmp Fri May 2 17:52:03 2008

I'll spare you the rest of the diff, it looks fine. But afterwards, the
prompt tacks "resolved" onto the end of that already-too-long prompt:

Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, (r) resolved,
        (s) show all options: s

...etc, etc. Ugh.

So David: I'm planning to just fix this up when do the other changes we
were talking about (Sunday, as I'm out all day tomorrow).

-Karl

***
Here's the script:
***

#!/bin/sh

SVNDIR=/home/kfogel/src/subversion

SVN=${SVNDIR}/subversion/svn/svn
SVNSERVE=${SVNDIR}/subversion/svnserve/svnserve
SVNADMIN=${SVNDIR}/subversion/svnadmin/svnadmin

URL=file:///`pwd`/repos

rm -rf repos wc* import-me

${SVNADMIN} create repos

echo "### Making a Greek Tree for import..."
mkdir import-me
mkdir import-me/trunk
mkdir import-me/tags
mkdir import-me/branches
mkdir import-me/trunk/A
mkdir import-me/trunk/A/B/
mkdir import-me/trunk/A/C/
mkdir import-me/trunk/A/D/
mkdir import-me/trunk/A/B/E/
mkdir import-me/trunk/A/B/F/
mkdir import-me/trunk/A/D/G/
mkdir import-me/trunk/A/D/H/
echo "This is the file 'iota'." > import-me/trunk/iota
echo "This is the file 'A/mu'." > import-me/trunk/A/mu
echo "This is the file 'A/B/lambda'." > import-me/trunk/A/B/lambda
echo "This is the file 'A/B/E/alpha'." > import-me/trunk/A/B/E/alpha
echo "This is the file 'A/B/E/beta'." > import-me/trunk/A/B/E/beta
echo "This is the file 'A/D/gamma'." > import-me/trunk/A/D/gamma
echo "This is the file 'A/D/G/pi'." > import-me/trunk/A/D/G/pi
echo "This is the file 'A/D/G/rho'." > import-me/trunk/A/D/G/rho
echo "This is the file 'A/D/G/tau'." > import-me/trunk/A/D/G/tau
echo "This is the file 'A/D/H/chi'." > import-me/trunk/A/D/H/chi
echo "This is the file 'A/D/H/omega'." > import-me/trunk/A/D/H/omega
echo "This is the file 'A/D/H/psi'." > import-me/trunk/A/D/H/psi
echo "### Done."
echo ""
echo "### Importing it..."
(cd import-me; ${SVN} import -q -m "Initial import." ${URL})
echo "### Done."
echo ""

${SVN} co -q ${URL}/trunk wc1
${SVN} co -q ${URL}/trunk wc2

cd wc1
echo "this is line 1" > iota
echo "this is line 2" >> iota
echo "this is line 3" >> iota
echo "this is line 4" >> iota
echo "this is line 5" >> iota
echo "this is line 6" >> iota
echo "this is line 7" >> iota
echo "this is line 8" >> iota
echo "this is line 9" >> iota
echo "this is line 10" >> iota
echo "this is line 11" >> iota
echo "this is line 12" >> iota
echo "this is line 13" >> iota
echo "this is line 14" >> iota
echo "this is line 15" >> iota
echo "this is line 16" >> iota
echo "this is line 17" >> iota
echo "this is line 18" >> iota
echo "this is line 19" >> iota
echo "this is line 20" >> iota
${SVN} ci -q -m "Give iota many lines."
${SVN} up -q
cd ..

cd wc2
${SVN} up -q
cd ..

cd wc1
echo "this is line 1" > iota
echo "this is wc1's line 2" >> iota
echo "this is wc1's line 3" >> iota
echo "this is line 4" >> iota
echo "this is line 5" >> iota
echo "this is line 6" >> iota
echo "this is line 7" >> iota
echo "this is wc1's line 8" >> iota
echo "this is line 9" >> iota
echo "this is line 10" >> iota
echo "this is line 11" >> iota
echo "this is line 12" >> iota
echo "this is line 13" >> iota
echo "this is line 14" >> iota
echo "this is line 15" >> iota
echo "this is line 16" >> iota
echo "this is line 17" >> iota
echo "this is wc1's line 18" >> iota
echo "this is wc1's line 19" >> iota
echo "this is line 20" >> iota
${SVN} ci -q -m "Change some lines."
${SVN} up -q
cd ..

cd wc2
echo "this is line 1" > iota
echo "this is wc2's line 2" >> iota
echo "this is wc2's line 3" >> iota
echo "this is line 4" >> iota
echo "this is line 5" >> iota
echo "this is line 6" >> iota
echo "this is line 7" >> iota
echo "this is line 8" >> iota
echo "this is line 9" >> iota
echo "this is line 10" >> iota
echo "this is line 11" >> iota
echo "this is line 12" >> iota
echo "this is wc2's line 13" >> iota
echo "this is line 14" >> iota
echo "this is line 15" >> iota
echo "this is line 16" >> iota
echo "this is line 17" >> iota
echo "this is wc2's line 18" >> iota
echo "this is wc2's line 19" >> iota
echo "this is line 20" >> iota

echo ""
echo "### Okay, ready for some interactive prompting:"
echo ""
${SVN} up
cd ..

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-05-02 23:57:10 CEST

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