Are SVN Branching/Merging Options Missing in Xcode 8.3 - xcode

I'm using Xcode 8.3.3 with SVN. I'm able to connect to an existing repository, make changes, and check in my code. However, It looks like the branching menu items are missing.
I have configured Trunk, Tag, and Branches options; and then was given the option to add branches. But after creating the branch, no changes seem to have been made.
Expected menu (from a training video):
Actual menu (from my project):
Note: "mobile" is the name of the working folder.

SVN is still fully supported in XCode 8.3.
The issue I was having above was that the code was not properly matched to the repository location. When the developer clicks "Check Out..." they are presented with the option below. The developer must map to the branch folder.
As an aside, SVN branching support removed in XCode 9.0. To work around this, the developer can have both versions of XCode installed - switch back to 8.3 (or older) to manage SVN branches.

Related

Open old version of Xcode project files stored in GitLab

I am trying to figure out how to open an old version of my Xcode project that is stored in GitLab. Usually, I use Xcode to push updates to Gitlab and on the occasions, I've had to get my project from GitLab, I simply click the "Open in Xcode" button on GitLab, which brings my project up.
The problem that I'm having now is that I've accidentally introduced a bug into the project that crashes the app and I can't figure out how to crush this bug. The last couple of updates to GitLab contain this bug so I need to revert to a copy a bit in the past. When I click on this update, there is no open in Xcode button, and I'm unsure about how to open this previous version.
I'm hoping that there is a straightforward solution to getting this old version of this file up. I'm just getting started using git, and I'm hoping someone on here can provide some insight.
Can someone please point me in the right direction on the easiest way to revert to an old project update on GitLab?
It seems easier to:
close XCode
cd /path/to/local/clone/of/GitLab/repo
switch to the command line and type git switch <old SHA1> in order to update the working tree with the files content of that past SHA1
open XCode back up.
(Note: git switch is better than the old legacy git checkout command)
If you want to commit some fixes, your git switch command will be:
git switch -c fix <old SHA1>
That will start a fix branch starting from <old SHA1>.

How can I tell what will be updated if I use "Get Latest Version"?

I have a Visual Studio solution and am using TFS for version control.
When I've made a bunch of changes to my working copy of the solution, the Team Explorer window will show me all the files that I've changed, and allow me to compare my version with either the workspace (original) version, or the latest version in TFS.
However, before I check in my changes, I first want to integrate any changes that have been made (by other people) to the latest TFS version since I got the source from TFS.
I could do a Get Latest Version and hope for the best. However, I would generally prefer to know what will be changed, and have the opportunity to look in detail at those changes, before overwriting my local files.
Is there a way to either compare my workspace (original) version against the latest version in TFS, or to see what the effects of a "Get" will be before I actually execute it?
To be useful, this would have to be a at a solution level - I would not want to have to go through each individual file.
Use Compare... and select Latest Version. That's best executed from the commandline or the Source Control Explorer.
If you compare "Latest Version" (remote) with "Workspace version" (local), then it'll tell you what has changes on the server since the last get-latest.
If you compare "Latest version (remote) with "Latest version" (local), then it'll tell you what has changed both locally and remotely.
The command line is your friend you can use the /preview switch to see what will happen if you do the get
tf get $/MyTeamProject/MySourcePath /recursive /preview

XCode 5 does not show full SVN history for repo

XCode 5.0.1 on OSX 10.9 does not show the full revision history for my repository under Source Control/History.
What it does display is the history up to a certain point several months ago, but nothing newer than that.
I tried viewing the repo and its history in Versions and there it works just fine.
At some point we migrated the repo from one server to another. We also upgraded the repository a while back, but I don't know to which version of SVN. However, I do know that we have Visual SVN Server and SVN 1.8.0 serverside.
On the other hand, the XCode 5.0 release notes state that XCode uses SVN 1.7, which leads me to suspect that this could be the cause of my issue. However, I also seem to remember that XCode used to refuse to work with unsupported versions of SVN.
Any ideas what could be causing the problem?
What sucks, but is the default in Xcode is that the server status is not automatically updated.
Open the preferences and go to the Source Control Preference and make sure the "Refresh server status automatically" button is checked.
There is nothing I can find within the Xcode UI besides this that tells you the server history is current or how to refresh it.
This is verified as of Xcode 5.1.1. What a shitty UI. Really.
Cheers.
In my case sometimes begins work after "Source Control/Update".
Actually, its terrible bug, you have no guarantees that you see actual list!!!
To answer my own question, it appears that there was something wrong with the working copy. Deleting it and then doing another checkout directly from XCode fixed the problem.
Yet another variation on 'turn it off, then on again'.

Source control with Xcode 4.4

I was using Xcode 4.3 and Subversion (SVN) for source control. Everything was working fine. I was able to see the files I've changed, compare with server version and commit.
Then Xcode 4.4 was released and I downloaded the new version and installed it. Now, source control has stopped to work. I don't see the files I've changed, and it seems that source control is not enabled.
Things I've already tried:
Delete all files from my local folder and use "Connect to repository" option on the XCode initial screen
Download everything from server with command line as I always did
Did anyone have any problem regarding source control?
I'm not sure if I'm answering your question here or a slightly different one, but I'd been searching around for an answer to a similar question - I would set up a new project in Xcode, then using svn command-line tools put it up on my svn repo; however in Xcode 4.4 (unlike its predecessors) this would not subsequently allow me to use the Xcode svn controls (my favourite being the Version editor panes).
The answer for me was to close the project, delete the project's derived data (Organizer -> Projects -> Select correct project -> Hit "Delete" button in line with "Derived Data") - then load up the project again.
Apologies if this does not in fact address your issue, but Xcode 4.4 seems to have introduced a few bugs regarding source control so perhaps this will assist in some way.
Support for using Source Control in xcode is mostly aimed at new/fresh starts in xCode. Aligning existing projects with the changes is less well explained. I found this partly helpful http://asciiwwdc.com/2013/sessions/414 but ponderous. Muddling on gave the best result.

Subversion tree conflicts when attempting to merge near identical branch

I have an iOS project under Subversion source control and I am using Cornerstone as my SVN client. (I have also tried using XCode for this as well)
I've had numerous problems merging branches, and hope someone can help!
In the simplest test I have done, I have:
Created a new branch from the trunk
Made one small text change in one file in the new branch
Immediately attempted to merge the change back into the trunk from the branch.
When Cornerstone analyses the merge contents, it reports lots of tree conflicts and newly added files.
Other (potentially) relevant info:
I am the only person working on the project at present, so there are no other changes being made.
I have tried merging from branch-branch, trunk-branch, branch-trunk all with the same result
The server is using SVN v1.4.2, my client is v1.6.17. I am suspecting that this may be the cause, but am looking to get this confirmed if possible.
Thanks!
It appears that the problem is due to the server being v1.4.2.
I deleted my existing working copy and checked out a fresh copy, ensuring that the SVN version was set in the check-out dialog box to 1.4.
Now, when I attempt a merge, I only get the options to "Cherry Pick Changes" or "Advanced Merge". The "Synchronise a branch" or "Reintegrate a branch" options no longer appear, so these must be options not supported on 1.4.2 and be the cause of the conflict explosion I was seeing.
In summary, to merge between my branches it appears that I have to select the specific revisions that I wish to merge.

Resources