Classes > Project Management
The purpose of this class is to get in touch with tools for collaborative development and project management. For the FabAcademy we're using Mercurial.
I'm used to work with similar tools like git or subversion, so using mercurial it's not difficult for me, and it seems to be a nice tool.
So I've created these pages, and I'll be adding and updating them with my projects during the course, btw, I'm writing this in html and css using vim.
The first thing I did was setting up my ssh keys so I can access the mercurial repository without password. A tutorial was provided for this task.
After this we started using the basic mercurial commands to pull, update, commit and push our changes to the class repository:
$ hg pull pulling from ssh://hg@fab.cba.mit.edu/academy.2012 searching for changes adding changesets adding manifests adding file changes added 62 changesets with 487 changes to 469 files 461 files updated, 0 files merged, 6 files removed, 0 files unresolved (run 'hg update' to get a working copy) $ hg update 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
Then, after some changes...
$ hg commit -m "Message for commit log" $ hg push
If you add files to the repository, you need to tell mercurial to track them. The command "hg add [file]" adds a file to the traking list, but you just can use "hg add ." on the parent directory to make mercurial search and add all new files it finds.
When you work with a version control system like mercurial, you have to pull the last changes from the repository before you commit new ones, oryou can get into conflicts (another user adds something before you, and now there are two changesets). When this happens, most of the times mercurial is smart enough to merge the changesets by itself. You just need to pull again, merge, and commit:
$ hg push pushing to ssh://hg@fab.cba.mit.edu/academy.2012 searching for changes abort: push creates new remote head XXXXXXX! (you should pull and merge or use push -f to force) $ hg pull pulling from ssh://hg@fab.cba.mit.edu/academy.2012 searching for changes adding changesets adding manifests adding file changes added 14 changesets with 53 changes to 44 files (+1 heads) abort: crosses branches (merge branches or update --check to force update) warning: changegroup hook exited with status 255 (run 'hg heads' to see heads, 'hg merge' to merge) $ hg merge 44 files updated, 0 files merged, 5 files removed, 0 files unresolved (branch merge, don't forget to commit) $ hg commit -m "New changes" $ hg push
So that's the basics. After being confortable with the commands, I started to write these pages from scratch using clean html and simple css, and as I'm used to that, editing in vim from the commandline. I prefer to code html by hand, visual tools usually insert lots of non-needed code or malformed html, and by the way, html is easy. You just need to code some basic skeleton and then make it look good using CSS.
So that's it for now, I'll keep improving the css and basic html as needs arise.