Git and XCode - Nsspain2013

Aprende Git
Aprende GitAprende Git
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-pick or revert
martes, 17 de septiembre de 13
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 easier to cherry-pick or revert
martes, 17 de septiembre de 13
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 try new things more often
• It will be easier to refactor
martes, 17 de septiembre de 13
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, 17 de septiembre de 13
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/
49478/git-ignore-file-for-xcode-projects
martes, 17 de septiembre de 13
• 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 and Workshops during the
conference!!
martes, 17 de septiembre de 13
• 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 workflow and/or protocol
• Good team comunication
• Use file locking (subversion)
• git checkout --theirs / git checkout --ours
martes, 17 de septiembre de 13
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/)
• 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
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 locking
martes, 17 de septiembre de 13
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
1 of 39

Recommended

Webtraining Zone - Grid CSS by
Webtraining Zone - Grid CSSWebtraining Zone - Grid CSS
Webtraining Zone - Grid CSSAlexzander Arriaga
51 views35 slides
La he liado parda by
La he liado pardaLa he liado parda
La he liado pardaAprende Git
1.6K views21 slides
Introduccion a git by
Introduccion a gitIntroduccion a git
Introduccion a gitAprende Git
464 views25 slides
Resolución de conflictos en git by
Resolución de conflictos en gitResolución de conflictos en git
Resolución de conflictos en gitAprende Git
7.3K views28 slides
Aprendiendo GIT by
Aprendiendo GITAprendiendo GIT
Aprendiendo GITInterGraphicDESIGNS
1.6K views17 slides
Git: flujos de trabajo y herramientas para trabajo colaborativo by
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
1.6K views45 slides

More Related Content

Similar to Git and XCode - Nsspain2013

Flujos de trabajo para un desarrollador web frontend by
Flujos de trabajo para un desarrollador web frontendFlujos de trabajo para un desarrollador web frontend
Flujos de trabajo para un desarrollador web frontendLeonidas Esteban González
3.6K views54 slides
Hawk: indexado de modelos en bases de datos NoSQL by
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLAntonio García-Domínguez
334 views79 slides
Aplicaciones web altamente escalables con Redis by
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
2.2K views48 slides
An Evening with... Go Lang by
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
569 views23 slides
Mongo Mapper by
Mongo MapperMongo Mapper
Mongo MapperFrancisco Viramontes
647 views23 slides
Curso: Publicando mi proyecto web en Github by
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
1K views52 slides

Similar to Git and XCode - Nsspain2013(20)

Aplicaciones web altamente escalables con Redis by Alberto Gimeno
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
Alberto Gimeno2.2K views
An Evening with... Go Lang by Arkhotech
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
Arkhotech569 views
Curso: Publicando mi proyecto web en Github by Carlos Huamaní
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
Carlos Huamaní1K views
Taller Git en la URJC by sidelab
Taller Git en la URJC Taller Git en la URJC
Taller Git en la URJC
sidelab1.3K views
Git with gifs by betabeers
Git with gifsGit with gifs
Git with gifs
betabeers935 views
Git para-principiantes by nscoder_mad
Git para-principiantesGit para-principiantes
Git para-principiantes
nscoder_mad2.4K views
Plone 4 — what's up doc? by menttes
Plone 4 — what's up doc?Plone 4 — what's up doc?
Plone 4 — what's up doc?
menttes435 views
Grails, opción real y escalable para sitios web de alta carga by Domingo Suarez Torres
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
Despliegue de aplicaciones PHP by AlicantePHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHP
AlicantePHP1.9K views
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas by Pablo Godel
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balasPHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
PHP Conference Argentina 2013 - Deployment de aplicaciones PHP a prueba de balas
Pablo Godel2.1K views

Recently uploaded

PRESENTACION DE FC.pptx by
PRESENTACION DE FC.pptxPRESENTACION DE FC.pptx
PRESENTACION DE FC.pptxGabrielRivas75
5 views5 slides
periodo 2.pdf by
periodo 2.pdfperiodo 2.pdf
periodo 2.pdfqkpjyqbctx
8 views7 slides
excelavanzado1-231020003159-be608ddc.pdf by
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdfsarahloradorado
11 views23 slides
proyecto_ salvando tortugas.pdf by
proyecto_ salvando tortugas.pdfproyecto_ salvando tortugas.pdf
proyecto_ salvando tortugas.pdfCamilaCordoba30
8 views1 slide
PyGoat Analizando la seguridad en aplicaciones Django.pdf by
PyGoat Analizando la seguridad en aplicaciones Django.pdfPyGoat Analizando la seguridad en aplicaciones Django.pdf
PyGoat Analizando la seguridad en aplicaciones Django.pdfJose Manuel Ortega Candel
5 views46 slides
Trabajo de tegnologia 10-1.pdf by
Trabajo de tegnologia 10-1.pdfTrabajo de tegnologia 10-1.pdf
Trabajo de tegnologia 10-1.pdfSebastianOcampo34
6 views7 slides

Recently uploaded(20)

excelavanzado1-231020003159-be608ddc.pdf by sarahloradorado
excelavanzado1-231020003159-be608ddc.pdfexcelavanzado1-231020003159-be608ddc.pdf
excelavanzado1-231020003159-be608ddc.pdf
sarahloradorado11 views
programacion orientada a objetos_sebastian segura barreto.pptx by sebastiansegura25
programacion orientada a objetos_sebastian segura barreto.pptxprogramacion orientada a objetos_sebastian segura barreto.pptx
programacion orientada a objetos_sebastian segura barreto.pptx
tecnologaeinformtica-231124115719-3a836080.pdf by MaraJos722801
tecnologaeinformtica-231124115719-3a836080.pdftecnologaeinformtica-231124115719-3a836080.pdf
tecnologaeinformtica-231124115719-3a836080.pdf
MaraJos72280110 views
MakeCode by Coffe9
MakeCodeMakeCode
MakeCode
Coffe96 views
Taller de Electricidad y Electrónica.docx by Franksamuel11
Taller de Electricidad y Electrónica.docxTaller de Electricidad y Electrónica.docx
Taller de Electricidad y Electrónica.docx
Franksamuel117 views
PostCall: Encuestas telefónicas post llamada by OpenDireito
PostCall: Encuestas telefónicas post llamadaPostCall: Encuestas telefónicas post llamada
PostCall: Encuestas telefónicas post llamada
OpenDireito6 views
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real... by codertectura
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
¡Planificando para el éxito! Usando los Planners de Semantic Kernel para real...
codertectura56 views
Basura electronica.docx by MissPotato2
Basura electronica.docxBasura electronica.docx
Basura electronica.docx
MissPotato28 views
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad... by edepjuanmurillo
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
EXCEL AVANZADO_ Combinación de correspondencia, Función sí, Función sí anidad...
edepjuanmurillo5 views
PRESENTACIÓN - SISTEMAS INFORMÁTICOS.pdf by NatalySnchez25
PRESENTACIÓN - SISTEMAS INFORMÁTICOS.pdfPRESENTACIÓN - SISTEMAS INFORMÁTICOS.pdf
PRESENTACIÓN - SISTEMAS INFORMÁTICOS.pdf
NatalySnchez259 views

Git and XCode - Nsspain2013