Seapine Labs
Personal tools

Xcode Support

From Seapine Labs

Jump to: navigation, search

Works only with Surround SCM 5.0.2

Works with XCode 2.4.1 or 2.5

Contents

[edit] Experimental Xcode Integration

Download current beta

[edit] Introduction

The Surround SCM Xcode plugin is distributed as experimental software. It currently supports Xcode 2.5 and 2.4.1. The plugin will communicate only with Surround SCM 5.0.2.

[edit] Supported Commands

The following SCM commands are supported:

  • Add
  • Check Out
  • Check In
  • Undo Check Out
  • Diff
  • Discard Changes
  • Get – Latest, Revision, Specific Revision
  • Compare With – Latest, File, Revision, Specific Revision
  • Rename
  • Delete
  • Show Changelists
  • Refresh Entire Project
  • Get SCM Info

[edit] Getting Started

Xcode does not support automatic binding. The following steps must be performed using the Surround SCM GUI client or CLI.

  1. Add the project to Surround SCM.
  2. Set the project working directory.
  3. Get all project files to the working directory.

[edit] Enable Surround SCM

  1. Select the project root node and click Info.
  2. Click the General tab.
  3. Select Surround from the SCM System pop-up menu.
  4. Click Edit to configure the connection. See Figure 1. Do not click enable until the connection settings are configured.
  5. Click OK to confirm the settings and close the Info dialog.
    SCM is now enabled for the project. The project is also bound to the Surround SCM Server but the status needs to be refreshed.
  6. Choose SCM > Refresh Entire Project to refresh the file status for all controlled items in the Xcode project.


Image:Fig1.jpg

Figure 1


[edit] Supported SCM Commands

Surround SCM commands are available from the Xcode SCM menu.

[edit] Add

The add command is only enabled for files. This command, which includes advanced options, adds files to Surround SCM. See Figure 2.


Image:Fig2.jpg

Figure 2

[edit] Check Out

The check out command is only enabled for files. This command checks out the tip version if possible and performs a local merge after the check out. The merge is performed using diff3. The standard diff3 conflict syntax is displayed inside the local file if it contains merge conflicts.

[edit] Check In

The check in command is only enabled for files. This command checks in the local file and makes the changes available for other users. You will be prompted for check in comments. The check in is performed after the comments are entered. A get is performed automatically after the check in.

[edit] Undo Check Out

The undo check out command is only enabled for files. This command discards any changes made to a file and undoes the check out.

[edit] Discard Changes

The discard changes command gets the tip version from Surround SCM and replaces the current file in the working directory.

[edit] Get

The get command retrieves a copy of the file.

  • Latest gets the tip version and merges its contents with the local file
  • Revision & Specific Revision get a specific revision from the server but do not merge its contents with the local file

[edit] Compare With

The compare with command compares different versions of a file. All diffs are performed using opendiff.

  • Latest diffs the tip version and the local file
  • File allows you to choose any file to diff against
  • Revision & Specific Revision compare the local file with a specific revision from server

[edit] Rename

The rename command renames the local file and the controlled file in Surround SCM.

[edit] Delete

The delete command removes the local file and the controlled file in Surround SCM.

[edit] Show Changelists

The show changelists command displays the currently pending changelists for the project's Surround SCM mainline branch. Add and Check In actions can be associated with a changelist. You can commit changelists and remove actions and changelists. See Figure 3.


Image:Fig4.jpg

Figure 3

[edit] Refresh Entire Project

The refresh entire project command refreshes the file status information for the project. Use this command to determine if the files in a project are up to date.

[edit] SCM Info

The SCM Info command displays the following history information for a file:

  • State
  • Local version number
  • Latest version number
  • Name of user with file checked out (displayed in Tag field)


Click an item to view the details about the specific history event. See Figure 4.


Image:Fig3.jpg

Figure 4

[edit] File Status Codes

The Xcode file status codes do not all directly match Surround SCM’s file status terminology. The following table includes the status code mapping:

Xcode StatusXcode Status StringSurround SCM Mapping
CNeeds MergeChecked out
CCommittable ConflictOld & Modified
MLocally ModifiedModified
UNeeds PatchOld
RLocally RemovedMissing
?UnknownUnknown

[edit] Known Issues


  • Surround SCM connection settings must be configured before SCM is enabled in Xcode. If you enable SCM first, exceptions will be seen in the console log.
  • The SCM Results tab is not automatically updated when a file is saved. To view the latest file status, click the SCM repository icon. Project explorer updates properly after a save.
  • Status codes do not all directly match Surround SCM terminology.
  • Diff report and Annotate are not currently supported.
  • Group/folder operations are not currently supported. Actions can only be performed on files.
  • Files cannot be attached to TestTrack defects.
  • Nib files cannot be checked out or checked in. Only way to perform action on Nib files is by expansion of the Nib folder and selection of the files within.
  • Surround SCM workflows are not currently supported.
  • Surround SCM custom field are not currently supported.

[edit] Submitting Feedback

To report bugs or other issues, please email a detailed description of the bug to us. You can also email any general feedback you'd like to share.














Issue Management Software | Source Code Control Software | Test Case Management