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

More SVN status bugs

From: Bill Tutt <billtut_at_microsoft.com>
Date: 2001-01-11 10:01:19 CET

While walking through the various things in svn-test.sh, and getting
WinSVN to display the correct thing in each case, I came across the
following:

* ${SVN_PROG} delete --force ${TEST_DIR_1}\A\D\H\omega

Registers the delete in $(TEST_DIR_1)/SVN/entries with a filename of
"A\D\H\omega" and an ancestor of: "anni/A\D\H\omega"
Doesn't touch ANYTHING in $(TEST_DIR_1)/A/D/H/SVN/entries

* adding a file (newfile1), and then deleting it before you commit it
results in the correct state in the entry structure for it, but there's
an unneeded else that marks this file as just being added:

Index: status.c
===================================================================
RCS file: /cvs/subversion/subversion/libsvn_wc/status.c,v
retrieving revision 1.24
diff -u -r1.24 status.c
--- status.c 2001/01/09 00:05:22 1.24
+++ status.c 2001/01/11 08:52:54
@@ -108,7 +108,7 @@
             status->prop_status = svn_wc_status_added;
         }
 
- else if (entry->state & SVN_WC_ENTRY_DELETED)
+ if (entry->state & SVN_WC_ENTRY_DELETED)
         {
           status->text_status = svn_wc_status_deleted;
           

* svn_wc_text_modified_p was assuming that just because we could
construct a string variable that might point to the text-base version of
the file, that the actual file exists.

Index: questions.c
===================================================================
RCS file: /cvs/subversion/subversion/libsvn_wc/questions.c,v
retrieving revision 1.44
diff -u -r1.44 questions.c
--- questions.c 2001/01/08 23:06:34 1.44
+++ questions.c 2001/01/11 08:53:21
@@ -349,9 +349,12 @@
   /* Get the full path of the textbase revision of filename */
   textbase_filename = svn_wc__text_base_path (filename, 0, pool);
 
+ err = svn_io_check_path (textbase_filename, &kind, pool);
+ if (err) return err;
+
   /* Simple case: if there's no text-base revision of the file, all we
      can do is look at timestamps. */
- if (! textbase_filename)
+ if (kind != svn_node_file)
     {
       err = timestamps_equal_p (&equal_timestamps, filename,
                                 svn_wc__text_time, pool);

Ok to commit?
Bill
Received on Sat Oct 21 14:36:19 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.