author | Puneeth Chaganti <puneeth@fossee.in> |
Fri, 18 Sep 2009 15:49:06 +0530 | |
changeset 62 | 780effcd7c5a |
parent 60 | 8a36825e21c5 |
child 96 | bb52cf47e920 |
permissions | -rw-r--r-- |
60
8a36825e21c5
Arithmetic section, typo correction, eg script.
Shantanu <shantanu@fossee.in>
parents:
54
diff
changeset
|
1 |
=============== |
8a36825e21c5
Arithmetic section, typo correction, eg script.
Shantanu <shantanu@fossee.in>
parents:
54
diff
changeset
|
2 |
Version Control |
8a36825e21c5
Arithmetic section, typo correction, eg script.
Shantanu <shantanu@fossee.in>
parents:
54
diff
changeset
|
3 |
=============== |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
4 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
5 |
Introduction |
26 | 6 |
============ |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
7 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
8 |
The following words are from a blogpost "http://karlagius.com/2009/01/09/version-control-for-the-masses/" |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
9 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
10 |
"Version control is one of those weird, geeky things that never really gained much ground in non-geek fields, despite the fact that it’s blindingly useful. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
11 |
|
26 | 12 |
Version control (or source control) is nothing more arcane than keeping copies of ones work as one make changes to it. On the surface, it’s all straight-forward; make a copy of every file before making any changes to it. That way, if something seriously messes up, one can always fall back to something that worked before, or at least compare the broken copy with one that used to work so one can figure out where it went off kilter. Accidentally deleted half of thesis and closed the word processor? No problem – out comes the backup." |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
13 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
14 |
Now, in the real world, it’s not so easy. One probably cooks up their own version control system without realizing it had such a geeky name. For instances files with names oldxxxxxx.py and latestxxxxxx.py. Every time to make some change in a file, one save it with different name then the original one. Luckily there are like, loads of version control systems out there to do this heavy lifting. |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
15 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
16 |
Why Use Version Control |
26 | 17 |
======================= |
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
18 |
|
38 | 19 |
One of idea behind Version Control Tools was to build onto very first step which can be creating a empty file, or writing a first buggy program for assignment, rather then simply loose it. So here are some reasons why is automated version control needed: |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
20 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
21 |
- It will track the history and evolution of a project, so one don't have to do it manually. It allows to track what changes where made, when were they made, by whom and why. |
26 | 22 |
- For a team of people working on same project, revision control software makes it easier to collaborate. For example, when people more or less simultaneously make potentially incompatible changes, the software will help them to identify and resolve those conflicts. |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
23 |
- It can help to recover from mistakes. If a change made at some moment of time, turns out to be in error in future, one can revert to an earlier version of one or more files. In fact, a really good revision control tool will even help in efficiently figure out exactly when a problem was introduced. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
24 |
|
26 | 25 |
Most of these reasons are equally valid for the project having one man show, or hundred people. Besides projects, even it can be used to maintain assignments related to one particular subject/course, it will help manage things in way much better way. These tools can be used for better *resources management*. All codes, documents, presentation, assignments related to one course maintained in such a inventory can help avoiding accidental lose of data(deletion) and Internet hosting for version control will make the work immune to local hard-disk crash, unless hosting crashes itself. |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
26 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
27 |
Some of Version Control Tools available and used widely are: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
28 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
29 |
- cvs (Concurrent Version System) |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
30 |
- svn (Subversion) |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
31 |
- hg (Mercurial) |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
32 |
- bzr (Bazaar) |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
33 |
- git |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
34 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
35 |
Each of above mentioned tools have sets of feature which it offers in unique way. For this session we are going to concentrate on hg (mercurial). After covering the basics of hg, one can easily try other tools, and use what-ever he/she is most comfortable with. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
36 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
37 |
Learning the Lingo |
26 | 38 |
================== |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
39 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
40 |
Each Version Control uses its own nomenclature for more or less the same features. Here are some of terms which are going to used through out the rest of session: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
41 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
42 |
Basic Setup |
26 | 43 |
----------- |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
44 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
45 |
Repository(repo): |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
46 |
The database/folder storing the files. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
47 |
Server: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
48 |
The computer storing the repo. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
49 |
Client: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
50 |
The computer connecting to the repo. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
51 |
Working Set/Working Copy: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
52 |
Your local directory of files, where you make changes. This is what is present on client side. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
53 |
Trunk/Main: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
54 |
The “primary” location for code in the repo. Think of code as a family tree — the “trunk” is the main line. This is generally what is present on server. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
55 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
56 |
Basic Actions |
26 | 57 |
------------- |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
58 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
59 |
Add: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
60 |
Put a file into the repo for the first time, i.e. begin tracking it with Version Control. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
61 |
Revision: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
62 |
What version a file is on. |
26 | 63 |
Head/Tip: |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
64 |
The latest revision of the repo. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
65 |
Check out: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
66 |
Initial download of repo onto machine. |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
67 |
Commit: |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
68 |
Upload a file to repository(if it has changed). The file gets a new revision number, and people can “check out” the latest one. |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
69 |
Checking Message: |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
70 |
A short message describing what was changed. |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
71 |
Change log/History: |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
72 |
A list of changes made to a file since it was created. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
73 |
Update/Sync: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
74 |
Synchronize local files with the latest from the repository on server. This get the latest revisions of all files. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
75 |
Revert: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
76 |
Throw away the local changes and reload the latest version from the repository. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
77 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
78 |
Advanced Actions: |
26 | 79 |
----------------- |
7
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
80 |
|
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
81 |
Branch: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
82 |
Create a separate copy of a file/folder for private use (bug fixing, testing, etc). |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
83 |
Diff/Change: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
84 |
Finding the differences between two files. Useful for seeing what changed between revisions. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
85 |
Merge (or patch): |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
86 |
Apply the changes from one file to another, to bring it up-to-date. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
87 |
Conflict: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
88 |
When pending changes to a file contradict each other (both changes cannot be applied). |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
89 |
Resolve: |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
90 |
Fixing the changes that contradict each other and checking in the correct version. |
eef24e2b0bac
Hand out doc for version contol added.
Shantanu <shantanu@fossee.in>
parents:
diff
changeset
|
91 |
|
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
92 |
Types of Version Control: |
26 | 93 |
------------------------- |
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
94 |
|
26 | 95 |
Based on how source/code management is carried out in a tool there are two categories of Version Control Systems(VCS): |
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
96 |
|
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
97 |
- Centralized VCS: |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
98 |
In this kind of system all the revision control functions are performed on a shared server. If two developers try to change the same file at the same time, without some method of managing access the developers may end up overwriting each other's work. Centralized revision control systems solve this problem in one of two different "source management models": file locking and version merging. Both svn and cvs follows this kind of management. |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
99 |
|
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
100 |
- Distributed VCS: |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
101 |
In a distributed model, every developer has their own repo. Diffs, commits, and reverts are all done locally, one needs Internet only to share the changes with others. It makes work faster, handles branching and merging in better way, with less management. hg, bzr and git uses this work flow. |
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
102 |
|
15 | 103 |
Get Going with Hg: |
26 | 104 |
================== |
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
105 |
|
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
106 |
Why hg? |
26 | 107 |
------- |
15 | 108 |
|
109 |
- It is easy to learn and use. |
|
110 |
- It is lightweight. |
|
111 |
- It scales excellently. |
|
112 |
- It is based on Python. |
|
113 |
||
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
114 |
A small point to notice here, hg cant track binary files for changes, one can add them to repo, but wont be able to track changes made to it. And hg considers, odt, pdf files as binary. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
115 |
|
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
116 |
Getting Started: |
26 | 117 |
---------------- |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
118 |
|
26 | 119 |
Following command tells the version of hg installed on machine: :: |
15 | 120 |
|
121 |
$hg version |
|
122 |
||
123 |
Mercurial Distributed SCM (version 1.1.2) |
|
124 |
Copyright (C) 2005-2008 Matt Mackall <mpm@selenic.com> and others |
|
125 |
This is free software; see the source for copying conditions. There is NO |
|
126 |
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
|
127 |
||
128 |
Built-in help, Mercurial provides a built-in help system. Following command will print a brief list of commands, along with a description of what each does. :: |
|
129 |
||
130 |
$hg help |
|
131 |
||
132 |
Mercurial Distributed SCM |
|
133 |
list of commands: |
|
134 |
add add the specified files on the next commit |
|
135 |
addremove ----------------------- |
|
136 |
||
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
137 |
For specific command, just follow the command name after the help. :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
138 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
139 |
$hg help diff |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
140 |
hg diff [OPTION]... [-r REV1 [-r REV2]] [FILE]... |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
141 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
142 |
diff repository (or selected files) |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
143 |
Show differences between revisions for the specified files. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
144 |
Differences between files are shown using the unified diff format. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
145 |
NOTE:____________ |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
146 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
147 |
Let there be Repository: |
26 | 148 |
------------------------ |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
149 |
|
38 | 150 |
In Mercurial, everything happens inside a repository. The repository for a project contains all of the files that “belong to” that project, along with a historical record of the project's files. A repository is simply a directory tree in file-system that Mercurial treats as special. |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
151 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
152 |
There can be two ways to create a repo, either getting local copy for existing repo available on Internet or machine, or creating a new repo. For getting already existing repo hg uses command *"clone"* :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
153 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
154 |
$hg clone http://hg.serpentine.com/tutorial/hello localCopyhello |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
155 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
156 |
requesting all changes |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
157 |
adding changesets |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
158 |
adding manifests |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
159 |
adding file changes |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
160 |
added 5 changesets with 5 changes to 2 files |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
161 |
updating working directory |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
162 |
2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
163 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
164 |
If clone succeeded, there would be a local directory called localCopyhello, with some files: :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
165 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
166 |
$ls localCopyhello/ |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
167 |
hello.c Makefile |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
168 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
169 |
Every Mercurial repository is complete, self-contained, and independent. It contains its own private copy of a project's files and history. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
170 |
|
26 | 171 |
To start a new repository use *hg init*: :: |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
172 |
|
26 | 173 |
$ mkdir Fevicol |
174 |
$ cd Fevicol/ |
|
175 |
$ echo "print 'Yeh Fevicol ka Majboot jod hai'" > feviStick.py |
|
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
176 |
$ ls -a |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
177 |
. .. feviStick.py |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
178 |
$ hg init |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
179 |
$ ls -a |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
180 |
. .. feviStick.py .hg |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
181 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
182 |
*.hg* directory indicates that this new dir is now a repo.This is where Mercurial keeps all of its metadata for the repository.The contents of the .hg directory and its subdirectories are private to Mercurial. Rest all files are for the user to use them as they pleases. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
183 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
184 |
Creating a branch of existing local repo is very easy via hg using clone command: :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
185 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
186 |
$ hg clone localCopyhello newCopy |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
187 |
updating working directory |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
188 |
2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
189 |
|
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
190 |
newCopy is exact copy of already existing repo. And this command can be used to create branch of locally created repo also: :: |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
191 |
|
26 | 192 |
$ hg clone Fevicol Fevicol-pull |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
193 |
updating working directory |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
194 |
0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
195 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
196 |
These local branches can prove really handy at times. It allows keep multiple copies of local branch for different purposes, say for debugging, testing, working version. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
197 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
198 |
History or Logs: |
26 | 199 |
---------------- |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
200 |
|
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
201 |
For the new repo created, first thing which can be tried is to check the logs/history. What changes were made and when and why, answers to all those questions are stored in logs safely. So for the the cloned repo the history can be viewed using command *"log"* (following commands are wrt localCopyhello repo). :: |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
202 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
203 |
$hg log |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
204 |
changeset: 4:2278160e78d4 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
205 |
tag: tip |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
206 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
207 |
date: Sat Aug 16 22:16:53 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
208 |
summary: Trim comments. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
209 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
210 |
changeset: 3:0272e0d5a517 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
211 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
212 |
date: Sat Aug 16 22:08:02 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
213 |
summary: Get make to generate the final binary from a .o file. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
214 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
215 |
changeset: 2:fef857204a0c |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
216 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
217 |
date: Sat Aug 16 22:05:04 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
218 |
summary: Introduce a typo into hello.c. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
219 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
220 |
changeset: 1:82e55d328c8c |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
221 |
user: mpm@selenic.com |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
222 |
date: Fri Aug 26 01:21:28 2005 -0700 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
223 |
summary: Create a makefile |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
224 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
225 |
changeset: 0:0a04b987be5a |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
226 |
user: mpm@selenic.com |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
227 |
date: Fri Aug 26 01:20:50 2005 -0700 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
228 |
summary: Create a standard "hello, world" program |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
229 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
230 |
By default, this command prints a brief paragraph of output for each change to the project that was recorded.The fields in a record of output from hg log are as follows: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
231 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
232 |
- changeset: This field has the format of a number, followed by a colon, followed by a hexadecimal (or hex) string. These are identifiers for the changeset. The hex string is a unique identifier: the same hex string will always refer to the same changeset in every copy of this repository. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
233 |
- user: The identity of the person who created the changeset. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
234 |
- date: The date and time on which the changeset was created, and the timezone in which it was created. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
235 |
- summary: The first line of the text message that the creator of the changeset entered to describe the changeset. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
236 |
- tag: A tag is another way to identify a changeset, by giving it an easy-to-remember name. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
237 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
238 |
To narrow the output of hg log down to a single revision, use the -r (or --rev) option. :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
239 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
240 |
$hg log -r 3 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
241 |
changeset: 3:0272e0d5a517 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
242 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
243 |
date: Sat Aug 16 22:08:02 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
244 |
summary: Get make to generate the final binary from a .o file. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
245 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
246 |
*range notation* can be used to get history of several revisions without having to list each one. :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
247 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
248 |
$ hg log -r 2:4 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
249 |
changeset: 2:fef857204a0c |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
250 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
251 |
date: Sat Aug 16 22:05:04 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
252 |
summary: Introduce a typo into hello.c. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
253 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
254 |
changeset: 3:0272e0d5a517 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
255 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
256 |
date: Sat Aug 16 22:08:02 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
257 |
summary: Get make to generate the final binary from a .o file. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
258 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
259 |
changeset: 4:2278160e78d4 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
260 |
tag: tip |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
261 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
262 |
date: Sat Aug 16 22:16:53 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
263 |
summary: Trim comments. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
264 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
265 |
The hg log command's -v (or --verbose) option gives you this extra detail. :: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
266 |
|
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
267 |
$ hg log -v -r 3 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
268 |
changeset: 3:0272e0d5a517 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
269 |
user: Bryan O'Sullivan <bos@serpentine.com> |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
270 |
date: Sat Aug 16 22:08:02 2008 +0200 |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
271 |
files: Makefile |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
272 |
description: |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
273 |
Get make to generate the final binary from a .o file. |
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
274 |
|
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
275 |
Making Changes: |
26 | 276 |
--------------- |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
277 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
278 |
There is feviStick.py file in repo created above with name Fevicol. *status(alias st)* command prints the revision history of the specified files or the entire project:: |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
279 |
|
26 | 280 |
$ cd Fevicol |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
281 |
$ hg log |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
282 |
$ hg status |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
283 |
? feviStick.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
284 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
285 |
"?" sign in front of file indicates that this file is not yet part of track record. *add* command is used to add new files to repo. :: |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
286 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
287 |
$ hg add feviStick.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
288 |
$ hg st |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
289 |
A feviStick.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
290 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
291 |
So file is now part of repository(A symbol). Use *commit (alias ci)* command to make changes effective(this command would be explained in more details in later parts). :: |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
292 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
293 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "First commit." |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
294 |
$ hg log |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
295 |
changeset: 0:84f5e91f4de1 |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
296 |
tag: tip |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
297 |
user: Shantanu <shantanu@fossee.in> |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
298 |
date: Fri Aug 21 23:37:13 2009 +0530 |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
299 |
summary: First commit. |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
300 |
|
38 | 301 |
Similar to add there are other commands available for file management in repo. *copy (alias cp)* command is used to mark files as copied for the next commit. :: |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
302 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
303 |
$ hg cp feviStick.py pidiLite.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
304 |
$ hg st |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
305 |
A pidiLite.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
306 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
307 |
*rename(alias mv)* rename files; equivalent of copy + remove. *tip* command shows newest revision in the repository. :: |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
308 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
309 |
$ hg rename pidiLite.py feviCol.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
310 |
$ hg st |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
311 |
A feviCol.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
312 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "Renamed pidiLite.py." |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
313 |
$ hg tip |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
314 |
changeset: 1:d948fb4137c5 |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
315 |
tag: tip |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
316 |
user: Shantanu <shantanu@fossee.in> |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
317 |
date: Sat Aug 22 00:11:25 2009 +0530 |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
318 |
summary: Renamed pidiLite.py. |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
319 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
320 |
*remove* command is used to remove files from a repo. :: |
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
321 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
322 |
$ hg remove feviCol.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
323 |
$ hg st |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
324 |
R feviCol.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
325 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
326 |
R status of files denotes, file is marked as to be removed by the previous command *remove*. To add the file again to repo, one can use *revert* command, which restore individual files or dirs to an earlier state. :: |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
327 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
328 |
$ ls |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
329 |
feviStick.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
330 |
$ hg revert feviCol.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
331 |
$ ls |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
332 |
feviCol.py feviStick.py |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
333 |
|
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
334 |
Sharing Changes: |
26 | 335 |
---------------- |
336 |
||
337 |
Pulling from repo: |
|
338 |
~~~~~~~~~~~~~~~~~~ |
|
339 |
||
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
340 |
As mentioned earlier that repositories in Mercurial are self-contained. This means that the changeset just created exists only in Fevicol repository and not in previously cloned Fevicol-pull. There are a few ways that can be used to propagate this change into other repositories. :: |
26 | 341 |
|
342 |
$ hg clone Fevicol Fevicol-clone |
|
343 |
updating working directory |
|
344 |
2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
345 |
||
346 |
Or traverse into the any dir which is a working hg repo(using hg init) and pull command will download all changeset from main repo. :: |
|
347 |
||
348 |
$ mkdir Fevicol-pull |
|
349 |
$ cd Fevicol-pull |
|
350 |
$ hg init |
|
351 |
$ hg pull ../Fevicol |
|
352 |
pulling from ../Fevicol |
|
353 |
requesting all changes |
|
354 |
adding changesets |
|
355 |
adding manifests |
|
356 |
adding file changes |
|
357 |
added 2 changesets with 2 changes to 2 files |
|
358 |
(run 'hg update' to get a working copy) |
|
359 |
||
360 |
*changeset* means a list of changes made to a file. In words of *hg help*, pull command is: :: |
|
361 |
||
362 |
pull changes from the specified source |
|
363 |
||
364 |
Pull changes from a remote repository to a local one. |
|
365 |
||
366 |
This finds all changes from the repository at the specified path |
|
367 |
or URL and adds them to the local repository. By default, this |
|
368 |
does not update the copy of the project in the working directory. |
|
369 |
||
370 |
Some times, even before pulling changesets, one may need to see what changes would be pulled, Mercurial provides *hg incoming* to tell what changes *hg pull* would pull into repo, without actually pulling the changes. This command is really handy in case of avoiding unwanted changesets into the repo. |
|
371 |
||
372 |
With Mercurial, *hg pull* does not(by default) touch the working directory. Instead there is *hg up (alias update, co, checkout)* command to do this. :: |
|
373 |
||
374 |
$ cd Fevicol-pull |
|
375 |
$ ls -a |
|
376 |
. .. .hg |
|
377 |
$ hg up |
|
378 |
2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
379 |
$ ls -a |
|
380 |
. .. feviCol.py feviStick.py .hg |
|
381 |
||
382 |
To update to specific version, give a version number to the *hg update* command. :: |
|
383 |
||
384 |
$ hg update 0 |
|
385 |
0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
386 |
$ hg parent |
|
387 |
changeset: 0:84f5e91f4de1 |
|
388 |
user: Shantanu <shantanu@fossee.in> |
|
389 |
date: Fri Aug 21 23:37:13 2009 +0530 |
|
390 |
summary: First commit. |
|
391 |
||
392 |
If no version number is specified *hg up* will update to the tip version. Version number of hg starts from 0. Compare *hg parent* output to the one before doing update to see the difference. |
|
393 |
||
394 |
Making Changes: |
|
395 |
~~~~~~~~~~~~~~~ |
|
396 |
||
397 |
After getting the desired version of local repo, one can make changes as he/she needs and then make them available(share) for others. For these operations we will be working in Fevicol-clone repo which we created earlier. It's often good practice to keep a “pristine” copy of a remote repository around, which you can then make temporary clones of to create sandboxes for each task you want to work on. :: |
|
398 |
||
399 |
$ cd Fevicol-clone/ |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
400 |
$ cat feviStick.py |
26 | 401 |
print 'Yeh Fevicol ka Majboot jod hai' |
402 |
||
403 |
This tagline is correct for feviCol.py but for feviStick.py it should be different. :: |
|
404 |
||
405 |
$ echo "print 'Ab no more Chip Chip'" > feviStick.py |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
406 |
$ cat feviStick.py |
26 | 407 |
print 'Ab no more Chip Chip' |
408 |
$ hg st |
|
409 |
M feviStick.py |
|
410 |
||
38 | 411 |
Mercurial's hg status command will tell us what Mercurial knows about the files in the repository. 'M' sign in front of feviStick.py indicates that Mercurial has noticed change. |
26 | 412 |
|
413 |
It's somewhat helpful to know that feviStick.py was modified, but one might prefer to know exactly what changes were made to it. To do this, use the *hg diff* command. :: |
|
414 |
||
415 |
$ hg diff |
|
416 |
diff -r a7912d45f47c feviStick.py |
|
417 |
--- a/feviStick.py Sun Aug 23 22:34:35 2009 +0530 |
|
418 |
+++ b/feviStick.py Sun Aug 23 22:47:49 2009 +0530 |
|
419 |
@@ -1,1 +1,1 @@ |
|
420 |
-print 'Yeh Fevicol ka Majboot jod hai' |
|
421 |
+print 'Ab no more Chip Chip' |
|
422 |
||
423 |
We can modify files, build and test our changes, and use hg status and hg diff to review our changes, until we're satisfied with what we've done and arrive at a natural stopping point where we want to record our work in a new changeset. All the diffs prior to committing the changes would be done wrt earlier marked record.The hg commit command lets us create a new changeset. |
|
424 |
||
425 |
Mercurial records your name and address with each change that you commit, so that you and others will later be able to tell who made each change. Mercurial tries to automatically figure out a sensible username to commit the change with. When we try to use *hg commit* there are various ways by which one can specify User name, some of those are: |
|
426 |
||
427 |
- Specify a -u option to the hg commit command on the command line, followed by a username. |
|
428 |
- set HGUSER environment variable. |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
429 |
- Edit hgrc file present in .hg folder to set this property, add following lines to that file and Mercurial will read those parameters from that location. :: |
26 | 430 |
|
431 |
[ui] |
|
432 |
username = Firstname Lastname <email.address@example.net> |
|
433 |
||
434 |
For me the hgrc file looks like this: :: |
|
435 |
||
436 |
[paths] |
|
437 |
default = /home/baali/Fevicol |
|
438 |
[ui] |
|
439 |
username = Shantanu Choudhary <shantanu@fossee.in> |
|
440 |
||
441 |
Once this parameter is set, *hg commit* command drops us into a text editor, to enter a message that will describe the modifications we've made in this changeset. This is called the commit message. It will be a record for readers of what we did and why, and it will be printed by hg log after we've finished committing. :: |
|
442 |
||
443 |
Changed tagline for feviStick.py. |
|
444 |
HG: Enter commit message. Lines beginning with 'HG:' are removed. |
|
445 |
HG: -- |
|
446 |
HG: user: Shantanu Choudhary <shantanu@fossee.in> |
|
447 |
HG: branch 'default' |
|
448 |
HG: changed feviStick.py |
|
449 |
||
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
450 |
This would be your default system editor(for me it is vim, one can set it also), where you can enter the log message in first line, once you are done with log message quit the editor using *[ESC] key ":wq"*.Once we've finished the commit, we can use the hg tip command to display the changeset we just created. :: |
26 | 451 |
|
452 |
$ hg tip |
|
453 |
changeset: 3:e1ab2aff4ddd |
|
454 |
tag: tip |
|
455 |
user: Shantanu Choudhary <shantanu@fossee.in> |
|
456 |
date: Sun Aug 23 23:32:01 2009 +0530 |
|
457 |
summary: Changed tagline for feviStick.py. |
|
458 |
||
459 |
One can do above mentioned procedure using following one line command: :: |
|
460 |
||
461 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "Changed tagline for feviStick.py." |
|
462 |
||
463 |
Sharing Changes: |
|
17
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
464 |
~~~~~~~~~~~~~~~~ |
e6240ecd7ae6
Basic file management in Repo.
Shantanu <shantanu@fossee.in>
parents:
16
diff
changeset
|
465 |
|
26 | 466 |
The *hg outgoing* command tells us what changes would be pushed into another repository. :: |
467 |
||
468 |
$ hg outgoing ../Fevicol |
|
469 |
comparing with ../Fevicol |
|
470 |
searching for changes |
|
471 |
changeset: 3:e1ab2aff4ddd |
|
472 |
tag: tip |
|
473 |
user: Shantanu Choudhary <shantanu@fossee.in> |
|
474 |
date: Sun Aug 23 23:32:01 2009 +0530 |
|
475 |
summary: Changed tagline for feviStick.py. |
|
476 |
||
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
477 |
And the *hg push* command does the actual push. :: |
26 | 478 |
|
479 |
$ hg push ../Fevicol |
|
480 |
pushing to ../Fevicol |
|
481 |
searching for changes |
|
482 |
adding changesets |
|
483 |
adding manifests |
|
484 |
adding file changes |
|
485 |
added 1 changesets with 1 changes to 1 files |
|
486 |
||
487 |
As with hg pull, the hg push command does not update the working directory in the repository that it's pushing changes into. One has to use hg update to populate the changes in desired repo. :: |
|
488 |
||
489 |
$ cd ../Fevicol |
|
490 |
$ hg tip |
|
491 |
changeset: 3:e1ab2aff4ddd |
|
492 |
tag: tip |
|
493 |
user: Shantanu Choudhary <shantanu@fossee.in> |
|
494 |
date: Sun Aug 23 23:32:01 2009 +0530 |
|
495 |
summary: Changed tagline for feviStick.py. |
|
496 |
$ cat feviStick.py |
|
497 |
print 'Yeh Fevicol ka Majboot jod hai' |
|
498 |
||
499 |
changesets are imported, but update is yet to be done. :: |
|
500 |
||
501 |
$ hg up tip |
|
502 |
1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
503 |
$ $ cat feviStick.py |
|
504 |
print 'Ab no more Chip Chip' |
|
505 |
||
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
506 |
Merging the Work: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
507 |
~~~~~~~~~~~~~~~~~ |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
508 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
509 |
This is next aspect of any version control, how to merge work done by various participants of project in a way that no one looses changes being made, and still remains updated. Here is simple case study which can help understanding why merging is required: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
510 |
|
38 | 511 |
Two persons, A and B are contributing on same project. Both starts from cloning the same online repo(lets say present state X), so that both have a working local repo. Now A edits one of file, commits the changes and pushes to the repo, hence changing the state of repo to Y, but B, have not updated his repo, makes a change in one of files and reaches to a different state Z. Now when A pulls repo from B, his repo will have multiple heads. This stage is clearly ambiguous, the repo of A is not consistent, it has multiple heads, and from here, whatever changes he makes can take whatsoever direction if it is not fixed, and hence A will have to merge changes so that everything becomes consistent again. |
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
512 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
513 |
Lets see how this work with working repo, we will use Fevicol and Fevicol-clone repositories created earlier. For now, the status of both repo is: :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
514 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
515 |
$ cd Fevicol-clone |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
516 |
$ hg tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
517 |
changeset: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
518 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
519 |
user: Shantanu Choudhary <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
520 |
date: Sun Aug 23 23:32:01 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
521 |
summary: Changed tagline for feviStick.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
522 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
523 |
The tagline for feviCol.py is not complete, so we make changes in that file in this repo. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
524 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
525 |
$ echo "print 'Yeh Fevicol ka Majboot jod hai, tootega nahin'" > feviStick.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
526 |
$ hg st |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
527 |
M feviStick.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
528 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
529 |
And commit the changes made :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
530 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
531 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "Updated tag line for feviCol.py." |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
532 |
$ hg st |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
533 |
$ hg tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
534 |
changeset: 4:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
535 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
536 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
537 |
date: Tue Aug 25 16:28:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
538 |
summary: Updated tag line for feviCol.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
539 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
540 |
Now we will make some changes on Fevicol repo. We will add new file here :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
541 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
542 |
$ cd Fevicol |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
543 |
$ echo "print 'Jor laga ke hayyiya'" > firstAdd.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
544 |
$ hg st |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
545 |
? firstAdd.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
546 |
$ hg add firstAdd.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
547 |
$ hg st |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
548 |
A firstAdd.py |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
549 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "Added firsAdd.py." |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
550 |
$ hg tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
551 |
changeset: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
552 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
553 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
554 |
date: Tue Aug 25 16:46:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
555 |
summary: Added firsAdd.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
556 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
557 |
So now we have two repo, who have different commit history and tree, now if we try to pull changes from one to another, this is how it goes(we are still in Fevicol repo): :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
558 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
559 |
$ hg pull ../Fevicol-clone |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
560 |
pulling from ../Fevicol-clone |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
561 |
searching for changes |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
562 |
adding changesets |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
563 |
adding manifests |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
564 |
adding file changes |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
565 |
added 1 changesets with 1 changes to 1 files (+1 heads) |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
566 |
(run 'hg heads' to see heads, 'hg merge' to merge) |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
567 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
568 |
There we go, since both repo were on different track, hg pull command in last line gives some heading from here. *hg heads* command show current repository heads or show branch heads. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
569 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
570 |
$ hg heads |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
571 |
changeset: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
572 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
573 |
parent: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
574 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
575 |
date: Tue Aug 25 16:28:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
576 |
summary: Updated tag line for feviCol.py. |
26 | 577 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
578 |
changeset: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
579 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
580 |
date: Tue Aug 25 16:46:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
581 |
summary: Added firsAdd.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
582 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
583 |
To get better understanding of what is going on hg have a tool known as *glog* which shows revision history alongside an ASCII revision graph. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
584 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
585 |
$ hg glog |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
586 |
o changeset: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
587 |
| tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
588 |
| parent: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
589 |
| user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
590 |
| date: Tue Aug 25 16:28:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
591 |
| summary: Updated tag line for feviCol.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
592 |
| |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
593 |
| @ changeset: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
594 |
|/ user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
595 |
| date: Tue Aug 25 16:46:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
596 |
| summary: Added firsAdd.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
597 |
| |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
598 |
o changeset: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
599 |
| user: Shantanu Choudhary <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
600 |
| date: Sun Aug 23 23:32:01 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
601 |
| summary: Changed tagline for feviStick.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
602 |
| |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
603 |
o changeset: 2:a7912d45f47c |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
604 |
| user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
605 |
| date: Sun Aug 23 22:34:35 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
606 |
| summary: Updated Content. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
607 |
| |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
608 |
o changeset: 1:d948fb4137c5 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
609 |
| user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
610 |
| date: Sat Aug 22 00:11:25 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
611 |
| summary: Renamed pidiLite.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
612 |
| |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
613 |
o changeset: 0:84f5e91f4de1 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
614 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
615 |
date: Fri Aug 21 23:37:13 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
616 |
summary: First commit. |
26 | 617 |
|
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
618 |
To bring repo on single track/branch once again we will have to merge these two branches. Without merging them even hg update wont work for obvious reason of confusing track record. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
619 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
620 |
$ hg up |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
621 |
abort: crosses branches (use 'hg merge' or 'hg update -C') |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
622 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
623 |
*hg merge* command merge working directory with another revision. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
624 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
625 |
$ hg merge |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
626 |
1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
627 |
(branch merge, don't forget to commit) |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
628 |
$ hg tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
629 |
changeset: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
630 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
631 |
parent: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
632 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
633 |
date: Tue Aug 25 16:28:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
634 |
summary: Updated tag line for feviCol.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
635 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
636 |
After merging two branches, until we commit the results of merge it will keep on showing two heads. :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
637 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
638 |
$ hg ci -u "Shantanu <shantanu@fossee.in>" -m "Merged branches of add and tag line." |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
639 |
$ hg heads |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
640 |
changeset: 6:edbe97209954 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
641 |
tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
642 |
parent: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
643 |
parent: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
644 |
user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
645 |
date: Tue Aug 25 17:06:03 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
646 |
summary: Merged branches of add and tag line. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
647 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
648 |
Here is brief and meaningful output of glog :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
649 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
650 |
$ hg glog |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
651 |
@ changeset: 6:edbe97209954 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
652 |
|\ tag: tip |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
653 |
| | parent: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
654 |
| | parent: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
655 |
| | user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
656 |
| | date: Tue Aug 25 17:06:03 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
657 |
| | summary: Merged branches of add and tag line. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
658 |
| | |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
659 |
| o changeset: 5:caf986b15e05 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
660 |
| | parent: 3:e1ab2aff4ddd |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
661 |
| | user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
662 |
| | date: Tue Aug 25 16:28:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
663 |
| | summary: Updated tag line for feviCol.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
664 |
| | |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
665 |
o | changeset: 4:fadbd6492cc4 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
666 |
|/ user: Shantanu <shantanu@fossee.in> |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
667 |
| date: Tue Aug 25 16:46:24 2009 +0530 |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
668 |
| summary: Added firsAdd.py. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
669 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
670 |
And we are back on track. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
671 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
672 |
Workflow: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
673 |
========= |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
674 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
675 |
This is chain of steps which can be followed for working against a project that has a centralized copy, you may want to make sure you're up to date first. This means pulling its changes and then updating. |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
676 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
677 |
For example: :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
678 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
679 |
$ hg pull |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
680 |
$ hg update |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
681 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
682 |
This will grab the remote changes from the location you first cloned from. Then it will apply the changes. You can do this in one go with: :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
683 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
684 |
$ hg pull -u |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
685 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
686 |
Now let's say you make some changes. You edit a file and you want to commit your change. You can do this with: :: |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
687 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
688 |
$ hg commit |
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
689 |
|
54
bed3fe467e21
First version of 5-6 Session of ult.
Shantanu <shantanu@fossee.in>
parents:
38
diff
changeset
|
690 |
An editor will pop-up asking you to write a message describing your change. When you're done for the day, and you have required changesets sitting in your repository. Before pushing to upstream make sure to pull and update and merge branches if required, once everything looks okay and you have single track, push the changes, :: |
37
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
691 |
|
4cddf3a13843
Added merging section, and typo correction.
Shantanu <shantanu@fossee.in>
parents:
26
diff
changeset
|
692 |
$ hg push |
16
7a8f9fa7accd
Completed Getting Started with Repository.
Shantanu <shantanu@fossee.in>
parents:
15
diff
changeset
|
693 |
|
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
694 |
Suggested Reading: |
26 | 695 |
================== |
8
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
696 |
|
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
697 |
* http://karlagius.com/2009/01/09/version-control-for-the-masses/ |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
698 |
* http://betterexplained.com/articles/a-visual-guide-to-version-control/ |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
699 |
* http://en.wikipedia.org/wiki/Revision_control |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
700 |
* http://hgbook.red-bean.com/ |
461e2574d624
Added CVCS and DVCS subsection.
Shantanu <shantanu@fossee.in>
parents:
7
diff
changeset
|
701 |
* http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/ |
38 | 702 |
* http://wiki.alliedmods.net/Mercurial_Tutorial |