Page MenuHomePhabricator

arc commit for subversion fails with untracked files where a directory has a property change
Open, Needs TriagePublic

Description

I get the error message below:

seth@luca:~/update/p2$ arc commit
Committing 'D311: p2 - Touchups inspired by new lib work'...
Usage Exception: This commit includes the directory '.', but it contains a modified path ('test/prof_burn.py') which is NOT included in the commit. Subversion can not handle this operation and will commit the path anyway. You need to sort out the working copy changes to 'test/prof_burn.py' before you may proceed with the commit.

It seems like arcanist thinks subversion will be upset because there are modificiations to . (svn properites) and an untracked file?

Here is what svn thinks the state of the world is (which I am pretty confident it will handle correctly):

seth@luca:~/update/p2$ svn st
 M      .
M       app.cpp
M       jit.cpp
?       test/prof_burn.py
A  +    test/reject_bad_insn.py
M       test/signal_bnds_flow.py

Let me know if any more information would be helpful.

Event Timeline

sshannin raised the priority of this task from to Needs Triage.
sshannin updated the task description. (Show Details)
sshannin added projects: Arcanist, Subversion.
sshannin added a subscriber: sshannin.

I thought to svn commit you couldn't have untracked files? i.e. if you ran svn commit you'd also get an error about the untracked file? Or said differently, isn't this working exactly as its supposed to, telling you about the untracked file that is not in the commit, etc?

I am not familiar with any such restriction being imposed by subversion.

Also, note that arc commit is perfectly fine with the untracked files when there are no changes on the directory itself (i.e. if I hadn't edited the svn props on .)

Can you verify that the corresponding svn commit command would work in this case?

Also, looking at the code, I think D 3111 on your system is possibly including test/prof_burn.py

seth@luca:~/update/p2$ svn ci
Sending        .
Sending        app.cpp
Sending        jit.cpp
Adding         test/reject_bad_insn.py
Sending        test/signal_bnds_flow.py
Transmitting file data ..........
Committed revision 27959.
seth@luca:~/update/p2$ svn st
?       test/prof_burn.py
seth@luca:~/update/p2$

I do not believe that test/prof_burn.py is included in my D311 (arcanist correctly warned my on initial arc diff that file wasn't being tracked by svn and it never appears in Differential).

Maybe this used to be a problem with older versions of svn?

That's possible. The pertinent code has been in the codebase since the "initial commit" and hasn't really seen any changes other than this - rARC0788220af41668e447c277ae4472dde73cf85a26 - way back in December of 2011.

Especially with the new requirement for a minimum svn version of 1.5, would there be any opposition to removing this check? I'm happy to make a diff for it.

Err, accidental double post