DrupalCafe5 VCS
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

DrupalCafe5 VCS

  • 1,884 views
Uploaded on

Version Control Systems: Mercurial and Git

Version Control Systems: Mercurial and Git

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,884
On Slideshare
1,884
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
10
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Version Control Systems Yuriy Gerasimov Madcap B.V. [email_address]
  • 2. Centralized VCS
  • 4. Distributed VCS
  • 7. Mercurial
    • hg init
    • 8. hg clone http://hg.serpentine.com/tutorial/hello
    • 9. hg clone repo repo_clone
    • 10. hg clone ssh://user@server//srv/hg/repo
  • 11. Mercurial
  • 16. Mercurial
    • hg commit (hg ci <files> -m ‘message’)
    • 17. hg rollback (rollback last commit)
    • 18. hg update (hg update -C)
    • 19. hg revert -r <rev> --all
    • 20. hg tag
  • 21. Mercurial
    • hg log
    • 22. -l5 – last 5 commits
    • 23. --graph – graph view (-G)
    • 24. --style compact / changelog / <custom>
    • 25. -d’Dec 9’ – date
  • 26. Mercurial
  • 30. Mercurial $ hg pull ../my-hello pulling from ../my-hello searching for changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files (+1 heads) (run 'hg heads' to see heads, 'hg merge' to merge)
  • 31. Mercurial
  • 32. Mercurial hg merge hg update -C hg merge
    • Wrong conflict resolution
  • 33. Mercurial
    • hg serve
    • 34. localhost:8000
  • 35. Mercurial
  • 38. Mercurial
    • Mistakes
      • Edit file. hg revert (creates .orig file)
      • 39. File management errors (add / remove). hg revert
      • 40. Wrong commit
        • Last commit. hg backout -m ‘message’
        • 41. Not last commit. hg backout --merge -m ‘message’ -<rev>
  • 42. Mercurial
    • Hooks (hgrc file in .hg folder)
    • 43. Meld (hg meld)
    • 44. Fetch (hg fetch)
    [hooks] changegroup = hg update >&2 [extensions] hgext.extdiff = [extdiff] cmd.meld = [extensions] fetch =
  • 45. git
    • git init
    • 46. git clone
    • 47. git add <file> (add file to index, staging area)
    yuriy@dell-desktop:~/gitpresentation/repo1$ git status # On branch master # Changed but not updated: # (use &quot;git add <file>...&quot; to update what will be committed) # (use &quot;git checkout -- <file>...&quot; to discard changes in working directory) # # modified: test.txt # # Untracked files: # (use &quot;git add <file>...&quot; to include in what will be committed) # # README no changes added to commit (use &quot;git add&quot; and/or &quot;git commit -a&quot;)
  • 48. git
    • git commit (git commit -a -m)
    • 49. git diff (--cached, --no-prefix)
    • 50. git rm
  • 51. git
    • git log
      • git log -p -2 – add diff to output, only last two
      • 52. git log –pretty=oneline --graph
      • 53. git log --pretty=format:&quot;%h - %an, %ar : %s&quot;
  • 54. git
    • gitk
  • 55. git
    • gitg
  • 56. git
    • git commit --amend – change last commit
    • 57. git reset HEAD <file> – unstage file
    • 58. git checkout -- <file> – unmodify file
  • 59. git
    • git add -i – interactive staging
  • 60. git
    • git stash (git stash apply)
    $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051... Revert &quot;added file_size&quot; stash@{2}: WIP on master: 21d80a5... added number to log
  • 61. git
  • 65. git
    • git branch (-a)
    • 66. git checkout <branch>
    • 67. git checkout -b <branch>
    • 68. git merge <branch>
    • 69. git branch -d
  • 70. Mercurial
    • Anonymous branches (heads)
    • 71. Named branches
      • hg branch
      • 72. hg update <branch>
    • Bookmarks
  • 73. git
    • Remote branches
      • git fetch origin
      • 74. git push (remote) (branch)
  • 75. Mercurial
    • Mercurial pulls and push all changesets. No matter what branch.
  • 76. git
    • Merge conflict
    yuriy@dell-desktop:~/gitpresentation/repo1$ git merge master Auto-merging test.txt CONFLICT (content): Merge conflict in test.txt Automatic merge failed; fix conflicts and then commit the result.n yuriy@dell-desktop:~/gitpresentation/repo1$ cat test.txt hello <<<<<<< HEAD new line conflict ======= master line >>>>>>> master
  • 77. git
    • mergetool
  • 78. git [extensions] rebase =
  • 81. git
    • Git-serve (https://github.com/jezdez/git-serve)
  • 82. Set up server
    • Mercurial hgweb.cgi
    • 83. git gitweb.cgi
    [collections] /srv/hg = /srv/hg
  • 84. svn git hg
  • 86. Config files .hgrc [ui] username = Yuriy Gerasimov <y.gerasimov@mdacap.nl> style = compact [extensions] hgext.extdiff = hgext.graphlog = fetch = hgext.bookmarks = rebase = hggit = /home/yuriy/programs/hg-git/hggit [git] intree = True [extdiff] cmd.meld = [bookmarks] track.current = True [auth] kiev.prefix = http://kiev.madcap.nl/hg kiev.username = yuriy kiev.password = abcd local.prefix = http://hg.yuriy-desktop local.username = yuriy local.password = abcd .gitconfig [color] ui = auto [color &quot;diff&quot;] meta = yellow bold frag = magenta bold old = red bold new = green bold whitespace = red reverse [core] whitespace=fix,-indent-with-non-tab,-indent-with-tab, trailing-space,cr-at-eol [alias] df = !git diff --no-prefix && git diff --staged --no-prefix clear = reset --hard st = status co = checkout br = branch ci = commit unstage = reset HEAD -- [user] name = Yuriy Gerasimov email = yuri.gerasimov@gmail.com
  • 87. Public services
    • hg: bitbucket.org
    • 88. git: github.com
  • 89. Drupal goes git way
    • http://groups.drupal.org/drupal-org-git-migration-team
    • 90. http://git.drupalcode.org/
    • 91. https://github.com/drupal/drupal
  • 92. Resources
    • hg
      • Mercurial: The Definitive Guide
      • 93. http://mercurial.selenic.com/guide/
    • git
      • http://drupal.org/node/783086
    • http://www.proft.com.ua/2010/10/17/spravochnik-po-git-i-mercurial/
  • 94. Version Control Systems Yuriy Gerasimov Madcap B.V. [email_address]