You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by zauhar <r....@usip.edu> on 2008/01/14 14:06:39 UTC
Problem committing project with Xcode
Hi,
I recently installed subversion 1.4.6 on one of our servers (OS X
Intel), and I am accessing the repositories from the clients using
httpd (apache 2.2.6). On the client side I installed the same version of
subversion, and also apr and apr-util (v. 1.1.12) and neon 0.25 . I
am using Xcode on the client (OS X G5).
I am observing the following flakey behavior -
1) I make a change to a file, and then look under the SCM menu to
Commit Change. However, "Commit Changes" is not highlighted, only
"Commit Entire Project" is active.
2) Fine. I select "Commit Entire Project". A dialog appears
announcing "Commit Failed. Details to follow:" - but there are no
details. I do not immediately see an error in the apache error_log.
3) However, NOW "Commit Changes" IS highlighted. I select this
option, and there is no error message. Moreover, looking at the code
on the server via a browser, I see that the change has indeed been
committed.
If I do the commit manually, it looks like this:
[cabriolet:~/SVN/bemSolver08/trunk] zauhar% svn commit -m "This is a
test commit - no substantive changes"
svn: Commit failed (details follow):
svn: Directory '/Users/zauhar/SVN/bemSolver08/trunk/build/
bemSolver08.build/bemSolver08.pbxindex/strings.pbxstrings/.svn'
containing working copy admin area is missing
If I do a non-recursive commit:
[cabriolet:~/SVN/bemSolver08/trunk] zauhar% svn commit -m "This is a
test commit - no substantive changes" -N
there is no error!
So, the issue seems to be an attempt to commit something from the
'build' subdirectory. I had already seen warnings in online FAQs
about including the Xcode build directory in version control, and
included the
following in the file ~/.subversion/config :
global-ignores = build *.mode1 *.pbxuser *~.nib .DS_Store *~
(I forget who I copied this from.) Apparently, this should cause svn
to ignore anything in the build directory. Why does this not work? Is
there something else I need to do?
Thanks in advance,
Randy
Randy J. Zauhar, PhD
Assoc. Prof. of Biochemistry
Director, Graduate Program in Bioinformatics
Dept. of Chemistry & Biochemistry
University of the Sciences in Philadelphia
600 S. 43rd Street
Philadelphia, PA 19104
Phone: (215)596-8691
FAX: (215)596-8543
E-mail: r.zauhar@usip.edu
Web: http://tonga.usip.edu/zauhar
DAD: "...So by contrasting the Brooklyn bridge with a standard
highway interchange, I will illustrate for the class the differences
between a nonsystems-oriented versus a systems-oriented approach to
design."
CATHERINE (age 10): "Daddy, GOOD teachers want their students to
SUCCEED."
Re: Problem committing project with Xcode
Posted by Ryan Schmidt <su...@ryandesign.com>.
On Jan 14, 2008, at 08:06, zauhar wrote:
> If I do the commit manually, it looks like this:
>
> [cabriolet:~/SVN/bemSolver08/trunk] zauhar% svn commit -m "This is
> a test commit - no substantive changes"
> svn: Commit failed (details follow):
> svn: Directory '/Users/zauhar/SVN/bemSolver08/trunk/build/
> bemSolver08.build/bemSolver08.pbxindex/strings.pbxstrings/.svn'
> containing working copy admin area is missing
>
> If I do a non-recursive commit:
>
> [cabriolet:~/SVN/bemSolver08/trunk] zauhar% svn commit -m "This is
> a test commit - no substantive changes" -N
>
> there is no error!
>
> So, the issue seems to be an attempt to commit something from the
> 'build' subdirectory. I had already seen warnings in online FAQs
> about including the Xcode build directory in version control,
Yes, you should not have the build directory under version control.
> and included the
> following in the file ~/.subversion/config :
>
> global-ignores = build *.mode1 *.pbxuser *~.nib .DS_Store *~
>
> (I forget who I copied this from.) Apparently, this should cause
> svn to ignore anything in the build directory. Why does this not
> work? Is there something else I need to do?
The "ignore" features in Subversion only ignore things that have no
yet been added to the repository. The build directory is already
added to the repository, therefore "ignore" has no effect.
You should remove the build directory from version control. If you
care about its contents (warning: untested!):
cd /Users/zauhar/SVN/bemSolver08/trunk
cp -R build build-real
svn rm build
svn ci build -m "removing build directory from version control"
mv build-real build
Then you should delete all the now-unnecessary and confusing .svn
directories that might still be left in the build directory.Something
like this (warning: untested!):
find build -name .svn -type d -print0 | xargs -0 rm -rf
If you don't care about the contents of the build directory, you can
skip the above and just:
svn rm build
svn ci build -m "removing build directory from version control"
You should probably also add "build" to the svn:ignores of the trunk
directory
svn propedit svn:ignores .
and add "build" on a new line when your editor pops up. Save it and
close. Then commit.
You can now remove "build" from global-ignores. (It probably doesn't
belong there; who's to say that some other project you're working on
doesn't have a file or directory called "build" that you actually do
want in version control?)
The above is one solution, which involves the build directory not
being under version control. The other option is that you do want the
build directory under version control, but none of its contents. In
this case, you would not add "build" to the svn:ignores property of
the trunk directory; instead you would add "*" to the svn:ignores
property of the build directory.
You would also still need to remove the contents of the build
directory from the repository. If you don't care about the contents
of the build directory:
cd build
svn rm *
svn propset svn:ignores '*' .
svn ci -m "removing contents of build directory"
If you do care about the contents, you will have to do the song and
dance routine as above to copy each item in the build directory to a
new temporary name, then "svn rm" the original item. Do this for all
items, then commit. Then move the temporary copies back to their real
names.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org