Git and XCode
Alfonso Alba
@aprendegit
martes, 17 de septiembre de 13
martes, 17 de septiembre de 13
How?
martes, 17 de septiembre de 13
Minimum man-hour
martes, 17 de septiembre de 13
• If you commit often:
• Your commits will be smaller
• Your history will be more readable
• It will be easier to cherry-p...
Commit often
XCode 4 XCode 5
ALT-CMD-C
martes, 17 de septiembre de 13
martes, 17 de septiembre de 13
• If you do not write good commit messages
martes, 17 de septiembre de 13
Write good commit
messages
XCode 4 XCode 5
You cannot commit empty messages
martes, 17 de septiembre de 13
• If you commit only related changes
• Your history will be more readable
• It will be easier to find bugs
• It will be eas...
Commit related
changes
You cannot commit chunks
XCode 4 XCode 5
martes, 17 de septiembre de 13
• If you use branches
• It will cost you less effort to switch
context
• It will be easier to do code review
• You will tr...
Use branches
Have you ever tried to change a branch in XCode?
XCode 4 XCode 5
martes, 17 de septiembre de 13
THE Problem:
Merging
martes, 17 de septiembre de 13
“My” experience with
git is:
martes, 17 de septiembre de 13
• You will have problems with
• xcuserdata
• xcworspacedata
• Core Data Models
• .xib files
• Story Boards
• Assets
martes,...
How to
deal with / mitigate
THE problem
martes, 17 de septiembre de 13
• xcuserdata
• Do not include this file in your
rempository
• Use a good .gitignore file
• http://stackoverflow.com/questions...
• xcworkspacedata
• ... you will have to resolve conflics
manually
martes, 17 de septiembre de 13
• Core Data Models
• Create the models on code
(Daniel Eggert contribution)
• Use migrations
•Test your models
• Sessions ...
• XIB and Story Boards
• ... well, if it was easy our life would be
much boring!!
martes, 17 de septiembre de 13
Do not use xib files or story
boards:
Yes, you will have to write code
martes, 17 de septiembre de 13
This is my code, don’t you dare touch it!!
martes, 17 de septiembre de 13
• If you want to use Interface Builder
• Split the story boards
• Use xib files instead of story boards
• Agree on a workflo...
DEMO:
git checkout-index
martes, 17 de septiembre de 13
baboon
https://github.com/SeyZ/baboon
martes, 17 de septiembre de 13
baboon
baboon client
working copy
baboon client
working copy
bare repo
martes, 17 de septiembre de 13
Other tools
martes, 17 de septiembre de 13
• git
• Interactive staging
• git-bisect
• git filter-branch / BGF repo cleaner (http://rtyley.github.io/bfg-repo-
cleaner/...
Is git your tool?
martes, 17 de septiembre de 13
• Git is not perfect
• BAD for binary files
• No folders
• Guess file renaming
• Too flexible
• Steep learning curve
• No file...
Access Control
martes, 17 de septiembre de 13
No history rewrites
martes, 17 de septiembre de 13
Undo
martes, 17 de septiembre de 13
• Enterprise tools
• Github Enterprise
• Stash
• Sourceforge
• PlasticSCM
martes, 17 de septiembre de 13
One more thing...
martes, 17 de septiembre de 13
Git is not a backup
system
martes, 17 de septiembre de 13
Thank you!!
martes, 17 de septiembre de 13
info@aprendegit.com
http://www.aprendegit.com
@aprendegit
@aalbagarcia
martes, 17 de septiembre de 13
Nächste SlideShare
Wird geladen in …5
×

Git and XCode - Nsspain2013

1.733 Aufrufe

Veröffentlicht am

Slide for the presentation "Git and Xcode" given @NSSpain 2013 in Logroño, Spain.

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.733
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
58
Aktionen
Geteilt
0
Downloads
12
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Git and XCode - Nsspain2013

  1. 1. Git and XCode Alfonso Alba @aprendegit martes, 17 de septiembre de 13
  2. 2. martes, 17 de septiembre de 13
  3. 3. How? martes, 17 de septiembre de 13
  4. 4. Minimum man-hour martes, 17 de septiembre de 13
  5. 5. • If you commit often: • Your commits will be smaller • Your history will be more readable • It will be easier to cherry-pick or revert martes, 17 de septiembre de 13
  6. 6. Commit often XCode 4 XCode 5 ALT-CMD-C martes, 17 de septiembre de 13
  7. 7. martes, 17 de septiembre de 13
  8. 8. • If you do not write good commit messages martes, 17 de septiembre de 13
  9. 9. Write good commit messages XCode 4 XCode 5 You cannot commit empty messages martes, 17 de septiembre de 13
  10. 10. • If you commit only related changes • Your history will be more readable • It will be easier to find bugs • It will be easier to cherry-pick or revert martes, 17 de septiembre de 13
  11. 11. Commit related changes You cannot commit chunks XCode 4 XCode 5 martes, 17 de septiembre de 13
  12. 12. • If you use branches • It will cost you less effort to switch context • It will be easier to do code review • You will try new things more often • It will be easier to refactor martes, 17 de septiembre de 13
  13. 13. Use branches Have you ever tried to change a branch in XCode? XCode 4 XCode 5 martes, 17 de septiembre de 13
  14. 14. THE Problem: Merging martes, 17 de septiembre de 13
  15. 15. “My” experience with git is: martes, 17 de septiembre de 13
  16. 16. • You will have problems with • xcuserdata • xcworspacedata • Core Data Models • .xib files • Story Boards • Assets martes, 17 de septiembre de 13
  17. 17. How to deal with / mitigate THE problem martes, 17 de septiembre de 13
  18. 18. • xcuserdata • Do not include this file in your rempository • Use a good .gitignore file • http://stackoverflow.com/questions/ 49478/git-ignore-file-for-xcode-projects martes, 17 de septiembre de 13
  19. 19. • xcworkspacedata • ... you will have to resolve conflics manually martes, 17 de septiembre de 13
  20. 20. • Core Data Models • Create the models on code (Daniel Eggert contribution) • Use migrations •Test your models • Sessions and Workshops during the conference!! martes, 17 de septiembre de 13
  21. 21. • XIB and Story Boards • ... well, if it was easy our life would be much boring!! martes, 17 de septiembre de 13
  22. 22. Do not use xib files or story boards: Yes, you will have to write code martes, 17 de septiembre de 13
  23. 23. This is my code, don’t you dare touch it!! martes, 17 de septiembre de 13
  24. 24. • If you want to use Interface Builder • Split the story boards • Use xib files instead of story boards • Agree on a workflow and/or protocol • Good team comunication • Use file locking (subversion) • git checkout --theirs / git checkout --ours martes, 17 de septiembre de 13
  25. 25. DEMO: git checkout-index martes, 17 de septiembre de 13
  26. 26. baboon https://github.com/SeyZ/baboon martes, 17 de septiembre de 13
  27. 27. baboon baboon client working copy baboon client working copy bare repo martes, 17 de septiembre de 13
  28. 28. Other tools martes, 17 de septiembre de 13
  29. 29. • git • Interactive staging • git-bisect • git filter-branch / BGF repo cleaner (http://rtyley.github.io/bfg-repo- cleaner/) • Hooks • Incremental merging: http://softwareswirl.blogspot.nl/2013/05/git-incremental-merge.html • sort-Xcode-project-file http://danieltull.co.uk/blog/2013/09/05/easier-merging-of-xcode-project- files/ (Chris Eidhof contribution) • SemanticMerge http://www.semanticmerge.com/ martes, 17 de septiembre de 13
  30. 30. Is git your tool? martes, 17 de septiembre de 13
  31. 31. • Git is not perfect • BAD for binary files • No folders • Guess file renaming • Too flexible • Steep learning curve • No file locking martes, 17 de septiembre de 13
  32. 32. Access Control martes, 17 de septiembre de 13
  33. 33. No history rewrites martes, 17 de septiembre de 13
  34. 34. Undo martes, 17 de septiembre de 13
  35. 35. • Enterprise tools • Github Enterprise • Stash • Sourceforge • PlasticSCM martes, 17 de septiembre de 13
  36. 36. One more thing... martes, 17 de septiembre de 13
  37. 37. Git is not a backup system martes, 17 de septiembre de 13
  38. 38. Thank you!! martes, 17 de septiembre de 13
  39. 39. info@aprendegit.com http://www.aprendegit.com @aprendegit @aalbagarcia martes, 17 de septiembre de 13

×