Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous...

139
These are confidential sessions—please refrain from streaming, blogging, or taking pictures Session 414 Understanding Source Control in Xcode Kevin Lindeman Xcode Software Engineer

Transcript of Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous...

Page 1: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

These are confidential sessions—please refrain from streaming, blogging, or taking pictures

Session 414

UnderstandingSource Control in Xcode

Kevin LindemanXcode Software Engineer

Page 2: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

More Information

WWDC 2012 Session■ Source Control Management in Xcode

Page 3: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

The Three Cs of Source Control

Page 4: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

The Three Cs of Source Control

Confidence

Page 5: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

The Three Cs of Source Control

CompartmentalizationConfidence

Page 6: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

The Three Cs of Source Control

CollaborationCompartmentalizationConfidence

Page 7: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

Page 8: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

• Latest Subversion client (1.7)

Page 9: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

• Latest Subversion client (1.7)• Improved Check Out

Page 10: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

• Latest Subversion client (1.7)• Improved Check Out•Workspace-centric workflows

Page 11: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

• Latest Subversion client (1.7)• Improved Check Out•Workspace-centric workflows•Deep integration with Xcode Service on OS X Server

Page 12: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What’s New in Source Control

• Latest Subversion client (1.7)• Improved Check Out•Workspace-centric workflows•Deep integration with Xcode Service on OS X Server•Greater customization

Page 13: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Key differencesSubversion 1.7 Structure

Project 1

.svn

Images

Frameworks

.svn

.svn

Page 14: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Key differencesSubversion 1.7 Structure

Project 1

.svn

Images

Frameworks

.svn

.svn

Page 15: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Key differencesSubversion 1.7 Structure

Project 1

.svn

Images

Frameworks

Page 16: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Subversion 1.7

Page 17: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Subversion 1.7

Page 18: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Enhancements in XcodeSubversion 1.7

Page 19: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Enhancements in XcodeSubversion 1.7

• Improved performance

Page 20: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Enhancements in XcodeSubversion 1.7

• Improved performance• Blame for modified files

Page 21: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Enhancements in XcodeSubversion 1.7

• Improved performance• Blame for modified files• Blame for line shortcut

Page 22: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Enhancements in XcodeSubversion 1.7

• Improved performance• Blame for modified files• Blame for line shortcut• CLI integration

Page 23: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Workspace-Centric Source Control

Page 24: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Workspace-Centric Source Control

Page 25: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Workspace-Centric Source Control

•Accounts

Page 26: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Workspace-Centric Source Control

•Accounts• Source Control Menu

Page 27: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Workspace-Centric Source Control

•Accounts• Source Control Menu• Check Out

Page 28: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Accounts Preferences

• Single place for all credential management

Page 29: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Accounts Preferences

• Single place for all credential management■ Apple ID

Page 30: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Accounts Preferences

• Single place for all credential management■ Apple ID■ Subversion servers

Page 31: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Accounts Preferences

• Single place for all credential management■ Apple ID■ Subversion servers■ Git remotes

Page 32: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Accounts Preferences

• Single place for all credential management■ Apple ID■ Subversion servers■ Git remotes■ OS X Server

Page 33: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

•All working copies and current branches readily available

Page 34: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

•All working copies and current branches readily available• Branch management

Page 35: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

•All working copies and current branches readily available• Branch management

Page 36: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

•All working copies and current branches readily available• Branch management•On-demand upgrade

Page 37: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

•All working copies and current branches readily available• Branch management•On-demand upgrade

Page 38: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out

Page 39: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out

Page 40: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out

Page 41: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out• Commit

Page 42: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out• Commit

Page 43: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Push/Pull/Update

• Check Out• Commit

Page 44: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out• Commit• Push/Pull/Update

Page 45: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Source Control Menu

• Check Out• Commit• Push/Pull/Update•History

Page 46: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

Page 47: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look

Page 48: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

Page 49: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents

Page 50: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites

Page 51: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites■ Repositories

Page 52: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites■ Repositories

■ OS X Server

Page 53: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites■ Repositories

■ OS X Server

• Browsing

Page 54: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites■ Repositories

■ OS X Server

• Browsing• Smarter

Page 55: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Check Out

•New look•More powerful

■ Recents■ Favorites■ Repositories

■ OS X Server

• Browsing• Smarter

■ SVN branch auto-discovery

Page 56: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Demo

Page 57: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

Page 58: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts

Page 59: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts• Source Control Menu

Page 60: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts• Source Control Menu• Check Out

Page 61: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts• Source Control Menu• Check Out

■ Auto-discovery

Page 62: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts• Source Control Menu• Check Out

■ Auto-discovery■ SVN branches

Page 63: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Accounts• Source Control Menu• Check Out

■ Auto-discovery■ SVN branches■ Accounts

Page 64: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

Page 65: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies

Page 66: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers

Page 67: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

Page 68: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

■ Subversion externals

Page 69: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

■ Subversion externals■ Git submodules

Page 70: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

■ Subversion externals■ Git submodules

Page 71: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

■ Subversion externals■ Git submodules

Page 72: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Many projects aggregate multiple working copies• Easy to set up new developers•Move away from:

■ Subversion externals■ Git submodules

Page 73: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

Page 74: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

• First open contains all working copies

Page 75: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

• First open contains all working copies•Managed viaSource Control Menu

Page 76: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

• Commit ‘Source Control Data’

Page 77: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

• Commit ‘Source Control Data’

Project.xcworkspace

xcshareddata

Project.xccheckout

Page 78: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

Page 79: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Accessed via Recents or on Workspace open

Page 80: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Accessed via Recents or on Workspace open

Page 81: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Multiple working copiesAdvanced Check Out

•Accessed via Recents or on Workspace open

Page 82: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Demo

Page 83: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

Page 84: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out

Page 85: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow

Page 86: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration

Page 87: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

Page 88: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts

Page 89: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts• Source Control Menu

Page 90: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts• Source Control Menu

■ Branching workflows

Page 91: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts• Source Control Menu

■ Branching workflows■ Current branch

Page 92: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts• Source Control Menu

■ Branching workflows■ Current branch

•History with Search

Page 93: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

• Check Out■ Streamlined workflow■ Branch integration■ Multiple working copy support

• Single point to manage accounts• Source Control Menu

■ Branching workflows■ Current branch

•History with Search• Subversion 1.7

Page 94: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Collaborating with OS X Server

Eric DudiakXcode Software Engineer

Page 95: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

End-to-end collaborationXcode Service on OS X Server

Page 96: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

End-to-end collaboration

•Hosting of Git Repositories

Xcode Service on OS X Server

Page 97: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

End-to-end collaboration

•Hosting of Git Repositories•Automated testing

Xcode Service on OS X Server

Page 98: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

End-to-end collaboration

•Hosting of Git Repositories•Automated testing•Archives releases

Xcode Service on OS X Server

Page 99: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

More Information

WWDC 2013 Session■ Continuous Integration with Xcode 5

Show screenshot of wwdc app with the SCM session queued up

Page 100: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

The Three Cs of Source Control

CollaborationCompartmentalizationConfidence

Page 101: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

Page 102: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

•Help working in teams

Page 103: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

•Help working in teams•Develop features

Page 104: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

•Help working in teams•Develop features

■ Insulate mainline code

Page 105: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

•Help working in teams•Develop features

■ Insulate mainline code

•Automated testing per branch

Page 106: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branches

•Help working in teams•Develop features

■ Insulate mainline code

•Automated testing per branch■ Verify branch before merging

Page 107: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

Page 108: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

Master

Page 109: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

MasterBranch

Page 110: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

Master

Branch

Page 111: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

MasterBranch

Page 112: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

MasterBranch

Page 113: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

What Is a Branch?

MasterBranch

Page 114: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

BranchBranch

Master

Master

Page 115: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

BranchBranch

MasterMaster

Page 116: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

BranchBranch

Master

Master

Page 117: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branch Branch

Master

Master

Page 118: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Branch

Branch

Master

Master

Page 119: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Master

Branch

Branch

Master

Page 120: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

MasterBranch BranchMaster

Page 121: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

MasterBranch BranchMaster

Page 122: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

MasterBranch BranchMaster

Page 123: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Demo

Page 124: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

SurfNTurfJogr SurfNTurf Jogr

Page 125: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

SurfNTurf Jogr SurfNTurf Jogr

Page 126: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

SurfNTurf

Jogr SurfNTurf Jogr

Page 127: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

SurfNTurf Jogr

SurfNTurf Jogr

Page 128: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Jogr

SurfNTurf

SurfNTurf

Jogr

Page 129: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

JogrSurfNTurf SurfNTurfJogr

Page 130: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

JogrSurfNTurf SurfNTurfJogr

Page 131: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

JogrSurfNTurf SurfNTurfJogr

Page 132: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

Page 133: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Workflow-drivenSource Control interaction

Page 134: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Workflow-drivenSource Control interaction■ Access most commands through the top-level menu

Page 135: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Workflow-drivenSource Control interaction■ Access most commands through the top-level menu

•OS X Server integration

Page 136: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Summary

•Workflow-drivenSource Control interaction■ Access most commands through the top-level menu

•OS X Server integration•Automatic management of multiple working copies

Page 137: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

More Information

Dave DeLongApp Frameworks and Developer Tools [email protected]

Apple Developer Forumshttp://devforums.apple.com

Page 138: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The

Labs

Xcode Lab Developer Tools LabOngoing

Page 139: Understanding Source Control in Xcode · Git remotes. Accounts Preferences ... Continuous Integration with Xcode 5 Show screenshot of wwdc app with the SCM session queued up. The