Discard all changes in Xcode 4.2 - xcode

I have an Xcode 4.2 project that uses git as repository. I make some changes in my source code files.
In order to discard changes in one file, I do the following:
Select that file in the Source Tree
Go to File > Source Control > Discard Changes to discard changes I made in that file
But I want to discard all changes in all files in my project. How to do it?

File > Source Control > Commit (⌥⌘C), on the left pane select the files you want to reset, right click on selection and click Discard Changes in the context menu.

From the command line in the git repository you could do
git co -- .
to reset the files to the HEAD revision.

You don't have to go to the commit screen to discard changes. Just highlight the file in the Project Navigator and select File > Source Control > Discard Changes.

Related

Exclude appsettings.json file from GitHub Repo

I have an existing Visual Studio project file (appsettings.json) that contains sensitive data that I do not want to publish to GitHub.
A repository is not currently created but I would like to create one without including the appsettings.json file.
I know that I can use the .gitignore file to exclude files after the initial push, but at this point the sensitive file would already have been pushed.
Moving forward, I can create the repository from the start of the project, but how should this be handled for an existing project without a repository?
I know that I can use the .gitignore file to exclude files after the initial push
Actually, you can use it before the initial push, even before the initial add to the index.
Simply create in VSCode a .gitignore at the root folder of your project, with as a content:
/.vscode/appsettings.json
(assuming this setting file was created automatically in the .vscode/ folder of your VSCode workspace for this project)
Then add and commit: you won't see that file in your first commit, than you can then push.
In visual studio,
Goto the solution explorer
Right click the file you want to git ignore
Goto "Git"
Then select "Ignore and untrack item"
I did the above to my appsettings.json and this is the entry i found in the .gitignore at the end of the file.
/MyProject.WebApi/appsettings.json
Here, "MyProject.WebApi" is inside the main directory.

Git ignore xcodeproj file

I am setting up a team project under git source control, and all members of the team will be using different IDE-s. The project is a basic command line application written in C. Personally I want to work within Xcode7, but I have a problem with the xcodeproj file (or folder) which is also being committed. I dont want this, since other team members dont work with Xcode and this xcodeproj file just does a mess when they checkout. I just want to be able to commit my regular source files to git and nothing else. What should I do? If the answer is .gitignore file, how should it look?
Just add these two lines to .gitignore:
*.xcodeproj/
DerivedData/
The first line excludes the Xcode project directory. The second excludes the default directory created for object files and other build data.

Exclamation (!) sign against a file in Xcode

I have check out an SVN repository from XCode. I have moved some files from one project to another in workspace. Its showing exclamation sign against some files.
When I click on that file in XCode commit window it says :
The revision HEAD was not found for the file ".../RequestLogger.h".
What should I do for that, do I need to commit those files as well?
You will have to delete that file and add a new file with a new name(even a single character change in name will work). would get updated in repository then.

tortoisegit: how to upload entire project?

How do I upload an entire Visual Studio project(200 files) into GIT?
I don't want to have to do one file at a time.
Thanks
Right click in Windows Explorer -> Git create repository here
Right click in Windows Explorer -> Git commit
Enter commit message
Check all files (there is a button for this)
Click OK to commit
Click Push
Click Manage remote
Add a remote: give a name and URL
Click OK to back to Push Dialog
Click OK to push
What I do is, I start a repository in the working dir that I wanted to ad (Git -> Init from the context menu).
I go to 'Git -> Diff' (make sure 'Show unversioned files' and 'Show whole tree' are ticked).
I select all the files to be added at once (multiselect using ctrl-click or shift-click for contiguous region)). Right-click to add. The files are now displayed in the top part of the screen.
I usually take the effort to ignore or delete the remaining files. When you choose to ignore a file, you get the option to ignore the specific path or all files with the same extension. Click refresh button to see the effect of new ignores.
Hint
Sometimes it is more practical to do some ignores up front in order to trim the list of unversioned files shown (make sure that 'Show ignored files' is _un_ticked). For Visual Studio projects, *.pdb, bin/, obj/, 'Debug/' etc. come to mind.
Finally, click the commit button, and you're done (enter message and click ok).
Alternative:
If you have many projects like this to add, you'd drop into a shell (like git-bash):
cat >> .gitignore <<HERE
*.user
*.suo
_Resharper*
Debug
Release
*scc
# be creative
HERE
git init .
git add .
git commit -am 'initial import'
Done

Xcode 4 project: utility to clean up pbxproj file?

I have an Xcode 4 project with 2 targets, one for iPhone and one for iPad. If I click on the iPad target and try to go to Build Settings Xcode 4 crashes:
Encountered multiple assertions. First assertion was: ASSERTION FAILURE in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-269/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/FileTypes/../PBXFileType.m:594
Details: filename should be a non-empty string, but it is nil
Obviously the pbxproj file has a bad reference in there somewhere -- likely caused by the many manual merges I've been forced to do by git. Is there some way to clean up the pbxproj file so it works correctly again or to tell which line is causing the problem?? I'd really really prefer not to have to recreate the project from scratch.
I tried gorbster's method with no success (though it has solved similar problems for me in the past).
I went into my project.pbxproj file (inside the .xcodeproj package for the project) and found two lines that looked a little suspicious, both of the form:
53A45F8F138FE6F40077017F /* (null) in Resources */ = {isa = PBXBuildFile; };
I deleted the lines, and voilà: I can access my build settings for this target again.
No idea how they got in there in the first place. I would guess something to do with a faulty merge under SVN.
Ran into the same issue this morning after pulling a colleague's merge.
I was able to fix this with the following:
Close Xcode
Open the .xcodeproj package in Finder
Delete the project.xcworkspace file/package
Open the xcuserdata folder and delete your user-specific .xcuserdatad folder.
Re-Open Xcode and project
I lost some minor user preferences (file and tab history, etc), but can now click all (9) of my targets without issue. Turns out my colleague was on an earlier version of Xcode, but I'm not sure if this contributed to the IDE crashing.
Ben Mosher found the solution.
And yes it is due to SVN merge problem.
As we working in team with SVN the error occur often so I wrote a bash script:
#!/bin/bash
sed "/(null) in/d" project.pbxproj > tmp_project.pbxproj
mv tmp_project.pbxproj project.pbxproj
Try the following steps while your Xcode is closed.
Go to your {YOUR_PROJECT}.xcodeproj file in finder.
Right click on the {YOUR_PROJECT}.xcodeproj file.
Choose Show Package Contents ... this will open the contents in another Finder screen.
Open file project.pbxproj and search for all lines having string "(null) in"
Delete all lines having (null) in ... no worries.... delete confidently.
Save your file.
Now open your project using Xcode and try to open the Build Settings tab... hopefully your problem will be solved.
Thanks,
Mohamed.
Right click your .xcodeproj file and "Show Package Contents".
Then open project.pbxproj file with TextEdit and duplicate.
Save duplicate file anywhere with same name and extension. (project.pbxproj)
And replace with the old file.
In case you also tried the remove (null) reference lines and deleting the user-specific .xcuserdatad folder, and those did not work, here is a potential solution. FYI... This was experienced on Xcode 7.3.1 .
Here is the scenario I faced:
I experienced this issue that was triggered by having "twin" branches in a git repo... (i.e. one branch BRANCH_A is a development branch with some features not due for release, and another that had the same commits except for the new features, call it BRANCH_B).
The development work flow is as follows: start with BRANCH_B, create a commit branch CHANGE_C, make changes and commit, then checkout BRANCH_A, create a commit branch, then cherry-pick changes from CHANGE_C. BRANCH_A is tracking BRANCH_B in this way, with its additional feature files.
In my case, (for some reason during rebasing on co-worker changes from the remote that BRANCH_B tracks, the project file for BRANCH_B got corrupted.
In this case, the solution is to save a copy of the project file for BRANCH_A (which is good and compiles), then checkout BRANCH_B, and replace its project file with the copy.
Initially, it will not compile, until all references to the feature files (from BRANCH_A) are removed from Target's Build Phases > Compile Sources.
Works great.

Resources