自分で作った Xcode のプロジェクトを Bitbucket にアップする

まずは既存の Xcode のプロジェクト(my2ndRepo)のフォルダへ移動

paraches-no-iMac:~ paraches$ cd my2ndRepo/
paraches-no-iMac:my2ndRepo paraches$ ls
Classes				my2ndRepo-Info.plist
MainWindow.xib			my2ndRepo.xcodeproj
build				my2ndRepoViewController.xib
main.m				my2ndRepo_Prefix.pch
paraches-no-iMac:my2ndRepo paraches$ 

で、Mercurialリポジトリにするためにイニシャライズ。

paraches-no-iMac:my2ndRepo paraches$ hg init
paraches-no-iMac:my2ndRepo paraches$ 

リポジトリを確認

paraches-no-iMac:my2ndRepo paraches$ hg status
? Classes/my2ndRepoAppDelegate.h
? Classes/my2ndRepoAppDelegate.m
? Classes/my2ndRepoViewController.h
? Classes/my2ndRepoViewController.m
? MainWindow.xib
? build/Debug-iphonesimulator/my2ndRepo.app.dSYM/Contents/Info.plist
? build/Debug-iphonesimulator/my2ndRepo.app.dSYM/Contents/Resources/DWARF/my2ndRepo
? build/Debug-iphonesimulator/my2ndRepo.app/Info.plist
? build/Debug-iphonesimulator/my2ndRepo.app/MainWindow.nib
? build/Debug-iphonesimulator/my2ndRepo.app/PkgInfo
? build/Debug-iphonesimulator/my2ndRepo.app/my2ndRepo
? build/Debug-iphonesimulator/my2ndRepo.app/my2ndRepoViewController.nib
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/Objects-normal/i386/main.o
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/Objects-normal/i386/my2ndRepo.LinkFileList
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/Objects-normal/i386/my2ndRepoAppDelegate.o
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/Objects-normal/i386/my2ndRepoViewController.o
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/build-state.dat
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo-all-target-headers.hmap
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo-generated-files.hmap
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo-own-target-headers.hmap
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo-project-headers.hmap
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo.dep
? build/my2ndRepo.build/Debug-iphonesimulator/my2ndRepo.build/my2ndRepo.hmap
? build/my2ndRepo.build/my2ndRepo.pbxindex/categories.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/cdecls.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/decls.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/files.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/imports.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/pbxindex.header
? build/my2ndRepo.build/my2ndRepo.pbxindex/protocols.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/refs.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/strings.pbxstrings/control
? build/my2ndRepo.build/my2ndRepo.pbxindex/strings.pbxstrings/strings
? build/my2ndRepo.build/my2ndRepo.pbxindex/subclasses.pbxbtree
? build/my2ndRepo.build/my2ndRepo.pbxindex/symbols0.pbxsymbols
? main.m
? my2ndRepo-Info.plist
? my2ndRepo.xcodeproj/project.pbxproj
? my2ndRepo.xcodeproj/paraches.mode1v3
? my2ndRepo.xcodeproj/paraches.pbxuser
? my2ndRepoViewController.xib
? my2ndRepo_Prefix.pch
paraches-no-iMac:my2ndRepo paraches$ 

ファイル名の前に ? が付いているファイルはリポジトリに追加されていないファイル。これらをリポジトリに追加すれば良いのだけど、build の下のファイルや Xcode の設定ファイル等はリポジトリに必要ないので外しておいた方が良いかな。それには、このフォルダに .hgignore というファイルを作って外すファイルを指定。このファイルはココのをそのまんま使用。

paraches-no-iMac:my2ndRepo paraches$ cat .hgignore 
syntax: regexp
/\.
DS_Store
^build/
.*\.mode1v3$
.*\.pbxuser$

paraches-no-iMac:my2ndRepo paraches$ 

もう一度 status コマンドで確認すると

paraches-no-iMac:my2ndRepo paraches$ hg status
? .hgignore
? Classes/my2ndRepoAppDelegate.h
? Classes/my2ndRepoAppDelegate.m
? Classes/my2ndRepoViewController.h
? Classes/my2ndRepoViewController.m
? MainWindow.xib
? main.m
? my2ndRepo-Info.plist
? my2ndRepo.xcodeproj/project.pbxproj
? my2ndRepo.xcodeproj/paraches.mode1v3
? my2ndRepoViewController.xib
? my2ndRepo_Prefix.pch
paraches-no-iMac:my2ndRepo paraches$ 

必要なファイルだけが表示されます。
この状態でファイルをリポジトリに追加

paraches-no-iMac:my2ndRepo paraches$ hg add *
adding Classes/my2ndRepoAppDelegate.h
adding Classes/my2ndRepoAppDelegate.m
adding Classes/my2ndRepoViewController.h
adding Classes/my2ndRepoViewController.m
adding my2ndRepo.xcodeproj/project.pbxproj
adding my2ndRepo.xcodeproj/paraches.mode1v3
paraches-no-iMac:my2ndRepo paraches$ 

status を確認すると

paraches-no-iMac:my2ndRepo paraches$ hg status
A Classes/my2ndRepoAppDelegate.h
A Classes/my2ndRepoAppDelegate.m
A Classes/my2ndRepoViewController.h
A Classes/my2ndRepoViewController.m
A MainWindow.xib
A main.m
A my2ndRepo-Info.plist
A my2ndRepo.xcodeproj/project.pbxproj
A my2ndRepo.xcodeproj/paraches.mode1v3
A my2ndRepoViewController.xib
A my2ndRepo_Prefix.pch
? .hgignore
paraches-no-iMac:my2ndRepo paraches$ 

ちゃんとリポジトリに加えられています。
次にコミットして

paraches-no-iMac:my2ndRepo paraches$ hg commit -m "Initial commit"
paraches-no-iMac:my2ndRepo paraches$ 

Bitbucket へ push! の前に、Bitbucket に my2ndRepo というリポジトリを作っておきます。これを作っておかないと 404 Error になります。

Bitbucket に my2ndRepo リポジトリを作り終わったら、今度こそ push します。

paraches-no-iMac:my2ndRepo paraches$ hg push https://bitbucket.org/paraches/my2ndrepo
http authorization required
realm: Bitbucket.org HTTP
user: paraches
password: 
pushing to https://bitbucket.org/paraches/my2ndrepo
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 11 changes to 11 files
remote: bb/acl: paraches is allowed. accepted payload.
paraches-no-iMac:my2ndRepo paraches$ 

ちゃんと push できました。
Bitbucket で my2ndRepo を見てみるとこんな感じ。

後は、Xcode で修正して、コミットして push するという事の繰り返しで個人的には良いかなと。
元に戻したい場合は revert できるし、ブランチ作ってそっちで作業してそれを取り込むとかも普通にできるし。自分にはそんな程度で OK。