I've verified the fix. The "text_status" for the "svn_wc_status2_t"
object now has the value of "svn_wc_status_normal".
Will this fix go out in a 1.7.8 and/or 1.8?
Also, I'm trying to track down what releases have this bug. It looks
like starting with 1.6.12 on up, which includes all of 1.7.x (i.e. 1.7.0
- 1.7.7). Is that correct?
Thanks,
Sean
Philip Martin wrote:
Sean Farrell <sfarr...@wv.mentorg.com> writes:
(*status)->text_status = old_status->node_status;
(*status)->prop_status = old_status->prop_status;
(*status)->repos_text_status = old_status->repos_node_status;
(*status)->repos_prop_status = old_status->repos_prop_status;
/* Some values might be inherited from properties */
if (old_status->node_status == svn_wc_status_modified
|| old_status->node_status == svn_wc_status_conflicted)
(*status)->text_status = old_status->text_status;
/* (Currently a no-op, but just make sure it is ok) */
if (old_status->repos_node_status == svn_wc_status_modified
|| old_status->repos_node_status == svn_wc_status_conflicted)
(*status)->text_status = old_status->repos_text_status;
...
}
As you can see "text_status" and "repos_text_status" follow similar logic, however the last line appears to be a copy & paste bug,
where "text_status" is used it should instead be "repos_text_status". This explains why the "svn_wc_status2_t->text_status"
has the value "svn_wc_status_modified" because it's being set to the value of "svn_wc_status3_t->repos_text_status".
This section of code was committed with revision 955787 by rhuijben.
Can anyone confirm my findings are correct, or wrong?
I think you are correct. Can you confirm that this is the correct fix:
Index: ../src/subversion/libsvn_wc/util.c
===================================================================
--- ../src/subversion/libsvn_wc/util.c (revision 1402519)
+++ ../src/subversion/libsvn_wc/util.c (working copy)
@@ -469,7 +469,7 @@
/* (Currently a no-op, but just make sure it is ok) */
if (old_status->repos_node_status == svn_wc_status_modified
|| old_status->repos_node_status == svn_wc_status_conflicted)
- (*status)->text_status = old_status->repos_text_status;
+ (*status)->repos_text_status = old_status->repos_text_status;
if (old_status->node_status == svn_wc_status_added)
(*status)->prop_status = svn_wc_status_none; /* No separate info */