Erik Huelsmann wrote:
>> I have a sparse working directory that contains a file which has been
>> ignored, and some sub-directories, some of which were updated and some of
>> which were checked out (so my working directory is disjoint so I can't just
>> do 'svn commit -m Test'.) I can get the status using a wildcard:
>
> The wildcard expands to a list of files including the unversioned
> file. If you run svn commit without the wildcard, the above should
> work.
In any working directory there are three classes of files; revisioned,
unrevisioned but ignored, and unrevisioned. The first two are known to
svn; the third are not. In my example everything that the wildcard
expands to is known to svn; the file it is complaining about is
unrevisioned but known (due to the svn:ignore property on the working
directory.)
The 'svn status *' and 'svn update *' both understand these three
classes, so my question is why doesn't 'svn -m Test commit *'? Why
doesn't it ignore the ignored files? Is there a situation in which this
would be the wrong thing to do?
The 'svn commit' command w/o the wildcard won't work because my working
copy is disjoint; some of the directories (Sierra, Nbtools, aria) were
retrieved from the repository with a 'svn update', and some (ARPACK)
were retrieved a 'svn checkout'. Since the ARPACK directory is disjoint,
it would be ignored by 'svn -m Test commit'.
When I explicitly name all four directories on the command line, as in
svn -m Test commit ARPACK Nbtools Sierra aria
they are committed correctly in a single transaction. Doing it this way
is a solution, of course, but this is just a simple test case. When our
developers have many more directories in their working directory, having
to specify each one on the command line could be tedious. Wildcards
exist for making dealing with groups of large files easy.
However, to ensure the disjoint child was not causing the problem I
created a new working directory, checked out the trunk using
--depth=empty and only updated two sub-directories. I still get the same
error (though as you pointed out in this case 'svn commit' w/o the
wildcard would have worked)
% svn status *
I SNTools.project
M Sierra/Sierra.xml
M Sierra/Sierra_sn.xml
M aria/Apps_aria.C
% svn update *
At revision 40421.
At revision 40421.
At revision 40421.
At revision 40421.
% svn -m Test commit *
svn: Commit failed (details follow):
svn: '/var/scratch2/sierra_svn_votd/SNTools.project' is not under
version control
--
----------------
Mark E. Hamilton
Orion International Technologies, Inc.
Sandia National Laboratory, NM.
505-844-7666
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-05-09 21:15:32 CEST