I am using the SCM Tools embedded in XCode to manage my app's versioning.
I have created an iPhone app and I have added/committed it to the Subversion server but the .xcodeproj file won't upload (all the class files, resources etc are there)! I don't even get the option to "Add to Repository". Sometimes it gets an "A" (add) next to it under the "SCM" column but still, the next time I commit changes or commit entire project it still doesn't upload and show up on the server. As a result my team can't get and run the project.
Is there a way to so something (other than just use the terminal or Versions)?
Thank you.
<project>.xcodeproj is actually a directory. The project data is stored in <project>.xcodeproj/project.pbxproj. Note that there are also some other relatively unimportant files in .xcodeproj which you don't need to worry about - just make sure that project.pbxproj gets checked in.
The best way is to checkout the latest version from SVN and make/copy the changes to the file(s) and commit it.
Related
Due to the poor documentation of XCodes files that manage your project under the hood, I cannot understand the purpose of the xcschememanagement.plist file, which is causing me a lot of problems.
Can anyone explain this file's purpose, and how we should be treating it with git source control?
Here is the full path to the file PROJECT_ROOT/xcuserdata/alecmather.xcuserdatad/xcschemes/xcschememanagement.plist
My problem with git and this file:
Let's say I start on branch_1.
I make some commits to this branch.
Then I switch to branch_2.
I make some commits there, and decide to run my project.
After I'm done, I stop running my project and switch back to branch_1.
I run my project there, and close it.
I attempt to switch back to branch_2 but am stopped by git saying that I have uncommitted changes in the current directory. But I did nothing but run my project.
So I'm assuming that this file holds some things that can get changed around when building/running your project? But this gets really tedious when switching between branches all the time. Do I commit the changes to that file from this scenario? Can I safely just discard the changes?
Yes, you can safely ignore the whole xcuserdata folder. All premade .gitignore files I've seen so far for Xcode projects do so, including https://github.com/github/gitignore/blob/master/Global/Xcode.gitignore
Possible duplicate
I fail to commit a .so library file using subclipse
I am developing an android application and in that I am trying to add some .so files from UlraliteJ framework. When I googled, I could see that .so files are ignored by SVN by default. So, I uncomment the line global-ignores in the config file of /.subversion folder as per this example
http://blog.keksrolle.de/2010/03/01/svn-ignores-file-extension-so-by-default-which-corrupted-my-build.html.
But, even then I was not able to commit them.
After that, I found the above post, so following that, I manually added .so files to version control and they have been added now.
But, now my problem is that they are not getting committed to SVN still. It fails with the following message,
svn: Commit failed (details follow):
svn: File not found: transaction '1635-1c5', path '/SVNfolder/trunk/OS_Android/SVNProject/libs/armeabi/libmlcrsa12.so'
If any body knows the answer, can you please share it with me
Here is my solution to this annoying problem using Eclipse and SVN
select the "SVN Repository Exploring" perspective.
choose the right folder where the .so files should be in the "SVN Repositories" view.
right click and choose the "import" menu
in the pop out dialog, choose a local path which containing the .so files, input the commit comment and hit OK button.
now the .so file are at the correct position.
Finally, I am able to commit after a day of effort. Thanks to this guy,
SVN: Folder already under version control but not comitting?
All you need to do is, take a back up of your project. Go to the problematic folder. In my case it was armeabi folder inside /lib of my project. View hidden files. There will be a .svn folder. Delete that.
Then revert back the .so files, clean the project. Add them back to the version control. Now along with the files, one more file named svn-commit.tmp.save is also created. Don't worry. Just commit the whole folder. Thus it is committed now.
How ever, I din't exactly know the need for deleting .svn folder.
I'm new with Xcode SCM tool. I would like to ask one question to you guys in detail.
We (Guy-A and Guy-B) working on the same SVN repository project through Xcode SCM tool.
We checked out the code and Guy-A added a folder to the project as SampleFileAdded to his local mapped version (please refer Figure1) and he added & committed to the SVN repository fine.
After that Guy-B updated / got latest version from SVN .
Here is the issue.Guy-B's project local mapped folder now contains the latest folder that Guy-A is added. However it didn't link with his Xcode folder structure.Guy-B need to drag the folder to his Xcode to link it with project.
May I know how can I avoid this step. Any help on this is appreciated.
Figure1:
Guy-A Local Machine
Guy-B Local Machine After Updated
On adding the folder to the project the project file will have been modified. It looks like somehow this was not committed, hence the problem.
Did you use File > Source Control > Commit… or select the (apparently) modified set of files and commit those? The former method will catch everything - sometimes Xcode fails to mark files as modified in the project window, and sometimes you'll even notice the count of files in the commit dialog is greater than the number listed in the dialog...
File > Source Control > Commit… should catch everything, even if it is not immediately apparent that it has. (Use an svn client, such as svnX, or svn in a terminal window to determine exactly what was/needs to be committed.)
Have Guy-A committed the project file too ? that is .xcodeproj . Please try to commit project file too then you need not to drag the folder after update.
I just started to use SVN with Xcode and stumbled upon several problems. I have started to work with SVN repository that was deployed on a remote server. The project had a standard directory structure (trunk, branches, tags). I have checked out the project with Xcode, did some work, performed commit (from Xcode). The teammate checked out that version. Then using Xcode, I have added new images folder and images to svn repository, and successfully performed commit. I ensure you that the image folder and the images were successfully uploaded to SVN server, because I saw that folder and images in trunk both from Xcode organizer and from browser, when was viewing the project remote files.
Now, my teammate performed update from Xcode (via file -> source -> update) but the image folder and images have not been retrieved. Xcode 4 just showed a message that a "project is up to date". He also went to organizer, then selected the trunk of repository and pressed update button, but the same message about project being up to date was shown. After more several tries, he deleted his local project files and performed checkout, but now the images were successfully retrieved. What might be a cause of such problem?
I know that for all required tasks I might use svn terminal commands, just curious is it sufficient to use Xcode 4 without command line.
We've had several issues with Xcode's SVN and have had to resort to the command line a few times to resolve them. Sometimes restarting Xcode has been enough, but if not here's a few simple svn commands that might help shed light on the issue, execute these from your project's root folder:
To check what state your SVN is in:
svn status
To update to most recent:
svn update
To commit:
svn commit -m "A commit message"
i am developing iphone projects on xcode. In SCM i am using svn but it is not possible to lock a file that on the svn to prevent other team member check out the file again (it copies the hole project to work offline). Is there any extension for xcode to solve that problem?
Dont know about doing it through xcode but you can do it through console by navigating to you project directory and typing
$ svn lock yourfile.m yourfile.h
then when you are done, do
$ svn unlock yourfile.m yourfile.h
Note: Locks only affect modification and delete operations (e.g. commit, delete) not checkouts. So other users can still checkout though they can't commit any changes made
Edit: Another approach you could use is to set the svn:needs-lock property such that the file becomes read-only and can only be edited by acquiring the lock on it. That way the wont inadvertently edit the file only to find that they cant commit it.