So I have a project I created a year or so ago and I've been manually saving the files to an external hard drive every new version. With Xcode 4.2, source control is now totally integrated into Xcode. Or so I thought. The problem I have in not creating the git repo (see below) but getting it to work with Version Control.
In my directory (cd in) I did the following to create a git repository. I see it as such in the Organizer in Xcode and in Github for Mac. It truly is a git repo.
git init
git add .
git commit -m 'First commit'
But in Xcode, when I change a file, there is no M or A badge or otherwise that appears to let me know it's been changed. What's more, the source control contextual menu items are all disabled and thus entirely useless. I don't want to have to commit or revert in the Organizer or command line every time.
How do I enable this part of version control in Xcode? Some tag I add to the .xcodeproj file? A bool somewhere? A setting somewhere? Anyone know? Thanks!
So I figured out the problem. I had to clean the project before it would show me the badges. I restarted Xcode after that as well, which may or may not have helped. In any case, after that, it worked perfectly.
I have also found a new clean linked repo to be the answer. Simply drag the whole folder containing the xcode proj file into the Git workspace and follow the prompts. After that all is linked and cool. That said I am aware that there may be more elegant solutions and answers.
Related
I recently had some issues with my local github repository, so I deleted the entire folder (including all the .git files) and cloned a new fresh copy. However, when I open the files in VScode, the code does not match what is on the online github repository. Instead the actual updated code I want is displayed in gutter indicators. The code that isn't in the gutter indicators is an old version of the code. However, if I open the files in another editor not linked to github, it displays the file correctly. I suspect it might be related to a local commit or stash, but I am fairly new to github so I am not sure what to do.
Or possibly a vscode issue?
I tried git revert and hard reset, but so far nothing has fixed it. Also, if I try to save I get a VSCode error: "Failed to save 'filename': The content of the file is newer. Please compare your version with the file contents."
This is an Angular project by the way (not sure if that matters)
EDIT I fixed it. I just completely removed and reinstalled all the add-ons on VSCode. So I guess it wasn't a git issue, just some kind of bug with VS Code
EDIT2 Turns out it didn't fix all of it, because I am still getting some gutter indicators, even though it removed some of them.
EDIT3 I did git rm --cached . -r -f in the local repository and then completely recloned it again. Seemed to remove all the gutter indicators so far...
Try and:
clone a fresh copy in a new folder (separate from your old one)
Add that new folder to your VSCode workspace with "Add Folder to workspace"
open files from the ones displayed in Explorer tab.
Those files should be the updated ones, not the old ones.
I've created a new project on OpenShift and cloned it locally. But now i'm having problems adding new files and folders to git index. Right click on the new folder (with files and subfolders) in project explorer and choosing Team -> Add to Index, changes nothing. And if i try to commit, Eclipse says that there aren't any changes... (If i only update existing files, everything seems to be fine).
What could be the problem?
Make sure that you have the "Git Staging" view open, and right click on the file in your Unstaged Changes and Select "Add to Index", also make sure that the file is not empty, it did not show up as a staged file until after i added some content to it, even after I had added the file. (Can't add empty files or directories to git with EGit maybe?)
this sounds like EGit missing new files. I'd love to know a bit more about your setup:
Where did you clone to, where is your Eclipse workspace?
To make sure your git setup is right I suggest that you do the same with the git command line:
cd [git-repo]
git status
Git status should list the new files and tell us that they're not added yet. If they get listed, then we know that your git is set up right and we can get back to Eclipse to try to figure out what's wrong with it.
Found out what the problem was (kind of stupid though). The folder that contained new content was listed in .gitignore ... but that file isn't accessible through eclipse, i had to look it up on filesystem. I also don't have a clue, how that line came to .gitignore...
Well, that's it...
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.
Today I switched from XCode 3 to XCode 4 and now I have a lot of problems with my projects, which were under version control in XCode 3. If you install XCode 4, it will remember all your repositories. The problem is, that the projects don't know, that they belong to a specific repository. The instructions of Apple are easy, but do not work:
If you have a working copy of a project that was checked out of Subversion or cloned from Git using the command line or another tool, you can add it to your Xcode SCM repository support. To do so, click the Add button (+) at the bottom of the navigation pane in the repository organizer and choose Add Working Copy.
If I choose the project directory, I get this:
The working copy could not be added because its repository could not be located.
Does anybody know what the problem is?
To avoid confusion, I want to make a few things clear: my projects were under version control in XCode 3 and it worked. I am also aware of the fact, that I could delete all my projects and check them out (I don't want to do that). I already tried to checkout a project, and then this project is automatically added as a working copy. However if I remove the reference and try to add the same (!!) project as a working copy again, it does not work either.
The key for me was quitting Xcode then following Apple's instructions exactly. In Terminal:
$ cd project_folder # project containing the .xcodeproj file
$ git init
$ git add . # note the dot after "add"
$ git commit -m 'Initial version text'
Then get back into Xcode, open the Organizer, et voilà — instant repository.
I was able to resolve this by quitting Xcode and then opening the repository organizer before opening my workspace. Then it worked and I could open my workspace with SVN integration.
In Terminal, you may get the error:
-bash: git: command not found
This is because the git tool (and svn too) are contained inside the Xcode.app bundle in XCode 4.5 or later. In order to run the contained tools you need to use the xcrun command. For example, to run the git commands mentioned in the posts above:
$ xcrun git init
$ xcrun git add .
$ xcrun git commit -m 'Initial
version text'
For more info, see this link:
http://www.cocoanetics.com/2012/07/you-dont-need-the-xcode-command-line-tools/
What I had to do was, as Udi pointed out, close Xcode and open the organizer before opening any projects. But then I had to add the repository and it's credentials first (SVN, in this case) before following the Apple directions you (mowidev) posted. After doing this, the working copy then appeared inside the listing for the SVN repository I'd added.
That ultimately linked in the two (Xcode project source control settings with the existing working copy it was using). Anything out of order ended up with Xcode thinking it was a Git repo (that also didn't exist).
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.