[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-issues
Subject:    [Issue 499] New - fix status output by handling absent files locally when updating
From:       issues () subversion ! tigris ! org
Date:       2001-09-28 17:50:34
[Download RAW message or body]

http://subversion.tigris.org/issues/show_bug.cgi?id=499

*** shadow/issues_15/499	Fri Sep 28 10:50:34 2001
--- shadow/issues_15/499.tmp.4240	Fri Sep 28 10:50:34 2001
***************
*** 0 ****
--- 1,61 ----
+ +============================================================================+
+ | fix status output by handling absent files locally when updating           |
+ +----------------------------------------------------------------------------+
+ |      Issue #: 499                       Component: subversion              |
+ |       Status: NEW                         Version: current                 |
+ |   Resolution:                            Platform: All                     |
+ |   Issue type: DEFECT                   OS/Version: All                     |
+ |     Priority: P3                     Subcomponent: src                     |
+ +----------------------------------------------------------------------------+
+ |  Assigned To: issues@subversion.tigris.org                                 |
+ |  Reported By: kfogel@tigris.org                                            |
+ |      CC list: Cc:                                                          |
+ +----------------------------------------------------------------------------+
+ |    Milestone: TargetMilestone: ---                                         |
+ |          URL:                                                              |
+ +============================================================================+
+ |                              DESCRIPTION                                   |
+ Files that have been removed from the filesystem, but not svn rm'd, have
+ absent status, which shows up as a `?' in the leftmost column in status
+ reports.  Try this:
+ 
+    $ svn co http://svn.collab.net/repos/svn -d repro
+    $ cd repro
+    $ rm README
+    $ svn st -n
+    $ svn st
+    $ svn st -nv
+    $ svn st -v
+ 
+ In all of those status outputs, README is correctly printed with a ?.
+ But if you run any combination that includes the -u switch:
+ 
+    $ svn st -u
+    $ svn st -vu
+    $ svn st -nu
+    $ svn st -nvu
+ ... you will see README printed out like this:
+ 
+    _    *     -  README
+ 
+ ... when it should be:
+ 
+    ?        174  README
+ 
+ ... or possibly:
+ 
+    ?    *   174  README
+ 
+ if it has also been modified in the repository.
+ 
+ The cause of the problem is that the update reporter reports a missing
+ file as a `delete', eventually resulting in the ra layer driving an add_file
+ in the update edit.  There is no reason for the repository to resend the
+ file if it's not modified in the repository, though!  The crawler should just
+ keep a list of what was missing from disk, and during the update phase, copy
+ those files out of text base.  It should never report to the repository that
+ the file was missing, it should merely report the entry's revision number, so
+ the repository can return any genuine updates.  This would fix two problems:
+ the fact that an update can cause a file to be sent that the client actually
+ had locally all along, and the fact that adding -u to status screws up the
+ reporting of missing files.
\ No newline at end of file

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic