Team Developpement with Mercurial - april 2011

243 views
201 views

Published on

Talk given by Pierre-Yves David (@marmoute) for Logilab during the mercurial developpement sprint in april 2011

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
243
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Team Developpement with Mercurial - april 2011

  1. 1. The issue Solutions Basic operation Implementation Details Use caseTeam Developpement With Mercurial April 29, 2011 Team Developpement With Mercurial
  2. 2. The issue Solutions Basic operation Implementation Details Use casePast vs present Past: immutable = liquid Present: mutable = frozen History: Past + present Team Developpement With Mercurial
  3. 3. The issue Solutions Basic operation Implementation Details Use caseWhy clean history: easy to read Review process hg annotate easy to process hg bisect hg annote Continuous Integration tools Changeset From valid state to valid state. Atomic As small as possible Team Developpement With Mercurial
  4. 4. The issue Solutions Basic operation Implementation Details Use caseclean history Errare humanum est won’t make it right. Iterative Collaborative Multiple task in Parallel tool: Version control System (distributed) Team Developpement With Mercurial
  5. 5. The issue Solutions Basic operation Implementation Details Use casePartial Solutions exist rebase and histedit limited hard to share hard get older version mq overlay: (unknown by core and extension) limited: (queue only) fragile: (no transaction, reject, .hg/patches consistency) break rules: (truncate revlog) Team Developpement With Mercurial
  6. 6. The issue Solutions Basic operation Implementation Details Use caseThe full solution DVCS trace changes to set of files, Must trace changes to changesets. A is updated as A’ A Aʼ A and B are merged as C A B A+B Need to snapshot the whole set of files, but there is no such thing as a consistent state for the set of heads of a tree. Changeset are distinct from each other Team Developpement With Mercurial
  7. 7. The issue Solutions Basic operation Implementation Details Use caseInsert characters: abc -> aXbc lines: abc abc ghi -> def ghi CHunks: adding a chunk to a changeset changeset: o C o C | | o B o B | | -> o D o A | | o A - | - Team Developpement With Mercurial
  8. 8. The issue Solutions Basic operation Implementation Details Use caseDelete characters: abc -> ac lines: abc abc def -> ghi ghi CHunks: remove chunk from a changeset changeset: o C | o C o B | | -> o A o A | | - - Team Developpement With Mercurial
  9. 9. The issue Solutions Basic operation Implementation Details Use caseModify characters: abc -> adc lines: abc abc def -> jkl ghi ghi CHunks: modify a chunk in a changeset changeset: o C | o C o B | | -> o A o A | | - - Team Developpement With Mercurial
  10. 10. The issue Solutions Basic operation Implementation Details Use caseCopy characters: abc -> abac lines: abc abc def -> def abc ghi ghi CHunks: N/A changeset: o cherry pick of C | o C o | C | | | | o B | o B | | -> | | o | A o | A |/ |/ Team Developpement With Mercurial
  11. 11. The issue Solutions Basic operation Implementation Details Use caseMove characters: abc -> bac lines: abc def def -> abc ghi ghi CHunks: N/A changeset: o C o C | | o B o A | -> | o A o B | | - - Team Developpement With Mercurial
  12. 12. The issue Solutions Basic operation Implementation Details Use caseJoin characters: N/A lines: abcn -> abcdefn defn ghin ghin CHunks: N/A changeset: o C | o C o B | | -> o A+B o A | | - - Team Developpement With Mercurial
  13. 13. The issue Solutions Basic operation Implementation Details Use caseSplit characters: N/A lines: abcdefn -> abcn ghin defn ghin CHunks: N/A changeset: o C o C | | o B o A+B -> | | o A - | - Team Developpement With Mercurial
  14. 14. The issue Solutions Basic operation Implementation Details Use caseMove Boundary characters: N/A lines: abcn -> abcdn defn efn ghin ghin CHunks: N/A changeset: o C o B+C | | o A+B -> o A | | - - Team Developpement With Mercurial
  15. 15. The issue Solutions Basic operation Implementation Details Use casesum up Insert Delete Modify Copy Move Join Split Move Boundary Team Developpement With Mercurial
  16. 16. The issue Solutions Basic operation Implementation Details Use caseProposed solution create new changeset as usual, New type of relation between changeset update delete split merge (copy) We can detect obsolete changeset conflicting changeset Out of sync changeset Team Developpement With Mercurial
  17. 17. The issue Solutions Basic operation Implementation Details Use caseCore change It’s Necessary to : Alter existing command to hide obsolete changeset, Add new command to recognise//solve out-of-sync and conflicting changeset, It’s recommended to have: Light weight changeset, Garbage collection. Team Developpement With Mercurial
  18. 18. The issue Solutions Basic operation Implementation Details Use caseExtensions change Do not alter Frozen changeset Add relevant link on edit Define hooks to update they internal state Team Developpement With Mercurial
  19. 19. The issue Solutions Basic operation Implementation Details Use caseSimple iterative work D C Cʼ Cʼʼ E D B Bʼ Aʼ C C Cʼ C Cʼ Cʼʼ A Bʼʼ B B Bʼ B Bʼ Aʼ A A A ΩB Bʼʼ Team Developpement With Mercurial
  20. 20. The issue Solutions Basic operation Implementation Details Use caseFeature that need a bug fix F B Bʼ F B F Fʼ F Fʼ F Fʼ Fʼʼ B B Bʼ B Bʼ Team Developpement With Mercurial
  21. 21. The issue Solutions Basic operation Implementation Details Use caseMultiple people working on the same thing Aʼ A Aʼʼ A Aʼʼ Aʼ A Aʼʼ Aʼ A Aʼʼ A Team Developpement With Mercurial
  22. 22. The issue Solutions Basic operation Implementation Details Use casePeople have works base on unwanted changeset B A A B A A Bʼ A Team Developpement With Mercurial

×