OSDN Git Service

Update version number to 1.2.1.0
[tortoisegit/TortoiseGitJp.git] / doc / source / en / TortoiseMerge / tme_introduction.xml
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!DOCTYPE chapter SYSTEM "../../dtd/dblite.dtd">\r
3 <chapter id="tmerge-intro">\r
4         <title>Introduction</title>\r
5         <simplesect>\r
6                 <para>\r
7                 </para>\r
8         </simplesect>\r
9         <!-- ================================================================= -->\r
10         <!-- ======================== SECTION 1 ============================== -->\r
11         <!-- ================================================================= -->\r
12         <sect1 id="tmerge-intro-overview">\r
13                 <title>Overview</title>\r
14                 <para>\r
15                         TortoiseMerge is a free/open-source application. It lets you see\r
16                         differences in text files, merge those changes and even review and\r
17                         apply unified diff files, often called <firstterm>patches</firstterm>.\r
18                 </para>\r
19                 <para>\r
20                         While working on text files, e.g. source files in your favourite\r
21                         programming language, or html/xml files for your documentation or\r
22                         website, you will often have a situation where you need to compare\r
23                         different versions of those files. Sometimes you get a different\r
24                         version from someone else, sometimes you just want to see the changes\r
25                         you've made.\r
26                 </para>\r
27                 <para>\r
28                         If you're working with a version control system (e.g. Git)\r
29                         then you sometimes get <emphasis>conflicts</emphasis> when you\r
30                         update your working copy. This happens if someone else changed the\r
31                         same parts of the file you're currently working on as you did.\r
32                         Then you have to resolve those conflicts manually. This is where\r
33                         TortoiseMerge can help you.\r
34                 </para>\r
35                 <para>\r
36                         The following diagram shows you the relationships between the\r
37                         files involved in a conflict:\r
38                 </para>\r
39                 <figure id="tmerge-ch1-dia1">\r
40                         <title>File Conflict</title>\r
41                         <graphic fileref="images/mergeprinciple.png"/>\r
42                 </figure>\r
43                 <para>\r
44                         A conflict can also occur if you try to apply an outdated patch file.\r
45                         In such cases, without TortoiseMerge, you would either have to ask\r
46                         the person you got that patch file from for a current version or try\r
47                         to apply that patch file manually.\r
48                 </para>\r
49                 <para>\r
50                         But now with TortoiseMerge this isn't necessary anymore -\r
51                         at least not if you're working with a version control system like\r
52                         Git. TortoiseMerge parses the patch file for the\r
53                         revision/version the patch was created for and automatically tries\r
54                         to fetch that specific version from your source-control.\r
55                         Then it applies the patch and lets you review both your changes\r
56                         to the file, and theirs. Then you can decide which changes\r
57                         you want to keep.\r
58                 </para>\r
59         </sect1>\r
60         <!-- ================================================================= -->\r
61         <!-- ======================== SECTION 2 ============================== -->\r
62         <!-- ================================================================= -->\r
63         <sect1 id="tmerge-intro-history">\r
64                 <title>TortoiseMerge's History</title>\r
65                 <para>\r
66                         While working on\r
67                         <ulink url="http://TortoiseGit.tigris.org">\r
68                                 <citetitle>TortoiseGit</citetitle>\r
69                         </ulink>\r
70                         we found that whenever users sent in patches to enhance the project\r
71                         or just to fix bugs, we had a lot of work just applying those\r
72                         patches. And many times those patches were outdated and couldn't\r
73                         be applied with the command line patch tool \r
74                         <ulink url="http://unxutils.sourceforge.net/">\r
75                                 <citetitle>http://unxutils.sourceforge.net/</citetitle>\r
76                         </ulink>\r
77                         because we were working on those files and had sometimes changed\r
78                         those files already.\r
79                 </para>\r
80                 <para>\r
81                         This was also the main reason why TortoiseGit did not originally\r
82                         have a\r
83                         <menuchoice>\r
84                                 <guimenu>TortoiseGit</guimenu>\r
85                                 <guimenuitem>Create Patch</guimenuitem>\r
86                         </menuchoice>\r
87                         implemented: we preferred users to send us the whole files because\r
88                         with those it was easier to apply patches.\r
89                 </para>\r
90                 <para>\r
91                         So we spent a lot of time, searching the Internet for a GUI tool\r
92                         which could apply patch files, but all we found was that such a tool\r
93                         didn't exist. So to cut a long story short: We decided that if\r
94                         no-one else could provide such a tool we would have to write our\r
95                         own. That's when TortoiseMerge was born.\r
96                 </para>\r
97                 <para>\r
98                         Since TortoiseGit already uses the Git library, which has a\r
99                         nice diffing engine built in, it was just natural to use this\r
100                         library instead of the GNU diff.\r
101                 </para>\r
102         </sect1>\r
103 </chapter>\r