logo       

Re: cvs 1.11.2 rdiff fails with binary files: msg#00069

Subject: Re: cvs 1.11.2 rdiff fails with binary files
> Tony,
> 
> Assuming Larry doesn't want to argue with me, could you resubmit this
> 
> patch with a test case and maybe documentation, as per the HACKING
> file 
> in the top level of the source distribution?
> 
> Thanks,
> 
> Derek


***CHANGELOG***

NEWS: Note that rdiff now handles binary files in the same way as the patch 
utility. 

***NEWS***

* The "cvs rdiff" command no longer attempts to diff files marked as binary.  
Instead, it prints a "Binary files foo:1.1 and foo:1.2 differ" message, just 
like the patch utility.


***PATCH***

diff -urN cvs-1.11.1p1-orig/src/patch.c cvs-1.11.1p1-apc/src/patch.c
--- cvs-1.11.1p1-orig/src/patch.c       Tue Apr 24 14:14:53 2001
+++ cvs-1.11.1p1-apc/src/patch.c        Wed Oct 30 15:32:38 2002
@@ -590,6 +592,28 @@
        case 0:                         /* nothing to do */
            break;
        case 1:
+           /* If files differ and are marked as binary, just output message */
+           if (rcsfile->expand != NULL && strcmp(rcsfile->expand, "b") == 0)
+           {
+               cvs_output("Binary files ", 0);
+               cvs_output(finfo->fullname, 0);
+               cvs_output(":", 1);
+               if (vers_tag)
+                   cvs_output(vers_tag, 0);
+               else
+                   cvs_output("missing", 0);
+               cvs_output(" and ", 0);
+               cvs_output(finfo->fullname, 0);
+               cvs_output(":", 1);
+               if (vers_head) 
+                   cvs_output(vers_head, 0);
+               else
+                   cvs_output("removed", 0);
+               cvs_output(" differ",0);
+               cvs_output("\n",1);
+               break;
+           }
+
            /*
             * The two revisions are really different, so read the first two
             * lines of the diff output file, and munge them to include more


***TEST***

                # APC - test rdiff_skip_binary
                # rdiff should warn and skip binary files like patch does
                mkdir testimport
                cd testimport
                echo "not a real binary file" > fakebinary
                ${AWK} 'BEGIN { printf "%c%c%c@%c%c", 2, 10, 137, 13, 10 }' \
                    </dev/null | ${TR} '@' '\000' > realbinary
                echo "just a text file" > textfile
                dotest_sort rdiff-10.0-skip_binary-do_import \
                  "${testcvs} import -I ! -m skip-binary-import 
trdiff_skip_binary TRDIFF T10" \
'

N trdiff_skip_binary/fakebinary
N trdiff_skip_binary/realbinary
N trdiff_skip_binary/textfile
No conflicts created by this import'
                dotest rdiff-10.1-skip_binary-do_checkout \
                  "${testcvs} co trdiff_skip_binary " \
"${PROG}"' [a-z]*: Updating trdiff_skip_binary
U trdiff_skip_binary/fakebinary
U trdiff_skip_binary/realbinary
U trdiff_skip_binary/textfile'
                cd trdiff_skip_binary
                dotest rdiff-10.3-skip_binary-do_makebinary \
                  "${testcvs} admin -kb fakebinary realbinary" \
"RCS file: ${CVSROOT_DIRNAME}/trdiff_skip_binary/fakebinary,v
done
RCS file: ${CVSROOT_DIRNAME}/trdiff_skip_binary/realbinary,v
done"
                dotest rdiff-10.4-skip_binary-do_update \
                  "${testcvs} update" \
"${PROG}"' [a-z]*: Updating \.
U fakebinary
U realbinary'
                cat realbinary realbinary > realbinary.new
                mv realbinary.new realbinary
                echo "more text" >> fakebinary
                echo "more text" >> textfile
                dotest rdiff-10.4-skip_binary-do_commit \
                  "${testcvs} commit -m skip-binary-commit" \
"${PROG}"' [a-z]*: Examining \.
Checking in fakebinary;
'"${CVSROOT_DIRNAME}"'/trdiff_skip_binary/fakebinary,v  <--  fakebinary
new revision: 1\.2; previous revision: 1\.1
done
Checking in realbinary;
'"${CVSROOT_DIRNAME}"'/trdiff_skip_binary/realbinary,v  <--  realbinary
new revision: 1\.2; previous revision: 1\.1
done
Checking in textfile;
'"${CVSROOT_DIRNAME}"'/trdiff_skip_binary/textfile,v  <--  textfile
new revision: 1\.2; previous revision: 1\.1
done'
                dotest rdiff-10.5-reset_ts-do_rdiff \
                  "${testcvs} rdiff -u -r1\.1 trdiff_skip_binary" \
"${PROG}"' [a-z]*: Diffing trdiff_skip_binary
Binary files trdiff_skip_binary/fakebinary:1\.1 and 
trdiff_skip_binary/fakebinary:1\.2 differ
Binary files trdiff_skip_binary/realbinary:1\.1 and 
trdiff_skip_binary/realbinary:1\.2 differ
Index: trdiff_skip_binary/textfile
diff -u trdiff_skip_binary/textfile:1\.1 trdiff_skip_binary/textfile:1\.2
--- trdiff_skip_binary/textfile:1\.1    .*
+++ trdiff_skip_binary/textfile .*
@@ -1 +1,2 @@
 just a text file
+more text'
                cd ../..
                rm -r testimport
                rm -rf ${CVSROOT_DIRNAME}/trdiff_skip_binary


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
web.pylons.gene...    hurd.l4/2002-10...    kernel.commits....    user-groups.lin...    yellowdog.gener...    java.drools.use...    security.openva...    package-managem...    linux.debian.us...    qnx.openqnx.dev...    genealogy.gramp...    file-systems.if...    voip.wengophone...    tex.context/200...    ietf.smime/2003...    audio.csound.de...    culture.region....    xfree86.devel/2...    mobile.kannel.u...    distributed.con...    education.engli...    org.user-groups...    bug-tracking.gn...    recreation.bicy...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe