2011-09-27 11:53:38 +02:00
|
|
|
/****************************************************************************
|
|
|
|
|
**
|
2013-01-28 17:12:19 +01:00
|
|
|
** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
|
2012-10-02 09:12:39 +02:00
|
|
|
** Contact: http://www.qt-project.org/legal
|
2011-09-27 11:53:38 +02:00
|
|
|
**
|
2012-10-02 09:12:39 +02:00
|
|
|
** This file is part of Qt Creator
|
2011-09-27 11:53:38 +02:00
|
|
|
**
|
|
|
|
|
**
|
|
|
|
|
** GNU Free Documentation License
|
|
|
|
|
**
|
|
|
|
|
** Alternatively, this file may be used under the terms of the GNU Free
|
|
|
|
|
** Documentation License version 1.3 as published by the Free Software
|
|
|
|
|
** Foundation and appearing in the file included in the packaging of this
|
|
|
|
|
** file.
|
|
|
|
|
**
|
|
|
|
|
**
|
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
|
|
// **********************************************************************
|
|
|
|
|
// NOTE: the sections are not ordered by their logical order to avoid
|
|
|
|
|
// reshuffling the file each time the index order changes (i.e., often).
|
|
|
|
|
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
|
|
|
// **********************************************************************
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
\contentspage index.html
|
2011-12-13 11:52:47 +01:00
|
|
|
\previouspage creator-project-wizards.html
|
2011-09-27 11:53:38 +02:00
|
|
|
\page creator-version-control.html
|
2011-12-13 11:52:47 +01:00
|
|
|
\nextpage creator-configuring-projects.html
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
\title Using Version Control Systems
|
|
|
|
|
|
|
|
|
|
Version control systems supported by \QC are:
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Version Control System
|
|
|
|
|
\li Address
|
|
|
|
|
\li Notes
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Bazaar
|
|
|
|
|
\li \l{http://bazaar.canonical.com/}
|
|
|
|
|
\li \QC 2.2 and later
|
2012-09-28 10:41:36 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li ClearCase
|
|
|
|
|
\li \l{http://www-01.ibm.com/software/awdtools/clearcase/}
|
2013-02-20 14:24:18 +01:00
|
|
|
\li \QC 2.6 and later
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li CVS
|
|
|
|
|
\li \l{http://www.cvshome.org}
|
|
|
|
|
\li
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Git
|
|
|
|
|
\li \l{http://git-scm.com/}
|
2013-02-20 14:03:32 +01:00
|
|
|
\li Git version 1.7.2, or later
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Mercurial
|
|
|
|
|
\li \l{http://mercurial.selenic.com/}
|
|
|
|
|
\li \QC 2.0 and later
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Perforce
|
|
|
|
|
\li \l{http://www.perforce.com}
|
|
|
|
|
\li Server version 2006.1 and later
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Subversion
|
|
|
|
|
\li \l{http://subversion.apache.org/}
|
2013-05-31 18:33:27 +02:00
|
|
|
\li Subversion version 1.6.17 and later
|
2013-02-06 08:50:23 +01:00
|
|
|
\li
|
2011-09-27 11:53:38 +02:00
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
\section1 Setting Up Version Control Systems
|
|
|
|
|
|
|
|
|
|
\QC uses the version control system's command line clients to access your
|
|
|
|
|
repositories. To allow access, make sure that the command line clients can
|
|
|
|
|
be located using the \c{PATH} environment variable or specify the path to
|
|
|
|
|
the command line client executables in \gui{Tools} > \gui{Options} >
|
|
|
|
|
\gui {Version Control}.
|
|
|
|
|
|
|
|
|
|
After you set up the version control system, use the command line to check
|
|
|
|
|
that everything works (for example, use the status command). If no issues
|
|
|
|
|
arise, you should be ready to use the system also from \QC.
|
|
|
|
|
|
|
|
|
|
\section2 Using msysGit on Windows
|
|
|
|
|
|
|
|
|
|
If you configure Git for use with \c {git bash}, only, and use SSH
|
|
|
|
|
authorization, Git looks for the SSH keys in the directory where the
|
|
|
|
|
\c HOME environment points to. The variable is always set by \c {git bash}.
|
|
|
|
|
|
|
|
|
|
However, the variable is typically not set in a Windows command prompt. When
|
|
|
|
|
you run Git from a Windows command prompt, it looks for the SSH keys in its
|
|
|
|
|
installation directory, and therefore, the authorization fails.
|
|
|
|
|
|
|
|
|
|
You can set the \c HOME environment variable from \QC. Select \gui {Tools >
|
|
|
|
|
Options > Version Control > Git}. Select the \gui {Environment Variables}
|
|
|
|
|
and the \gui {Set "HOME" environment variable} check boxes. \c HOME is set
|
|
|
|
|
to \c %HOMEDRIVE%%HOMEPATH% when the Git executable is run and authorization
|
|
|
|
|
works as it would with \c {git bash}.
|
|
|
|
|
|
|
|
|
|
\section1 Setting Up Common Options
|
|
|
|
|
|
|
|
|
|
Select \gui{Tools} > \gui{Options} > \gui{Version Control} > \gui{Common}
|
|
|
|
|
to specify settings for submit messages:
|
|
|
|
|
|
|
|
|
|
\list
|
|
|
|
|
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Submit message check script} is a script or program that
|
2011-09-27 11:53:38 +02:00
|
|
|
can be used to perform checks on the submit message before
|
|
|
|
|
submitting. The submit message is passed in as the script's first
|
|
|
|
|
parameter. If there is an error, the script should output a
|
|
|
|
|
message on standard error and return a non-zero exit code.
|
|
|
|
|
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{User/alias configuration file} takes a file in mailmap format
|
2011-09-27 11:53:38 +02:00
|
|
|
that lists user names and aliases. For example:
|
|
|
|
|
|
|
|
|
|
\code
|
|
|
|
|
Jon Doe <Jon.Doe@company.com>
|
|
|
|
|
Hans Mustermann <Hans.Mustermann@company.com> hm <info@company.com>
|
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
\note The second line above specifies the alias \e{hm} and the
|
|
|
|
|
corresponding email address for \e{Hans Mustermann}. If the
|
|
|
|
|
user/alias configuration file is present, the submit editor
|
|
|
|
|
displays a context menu with \gui{Insert name} that pops up a
|
|
|
|
|
dialog letting the user select a name.
|
|
|
|
|
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{User fields configuration file} is a simple text file
|
2011-09-27 11:53:38 +02:00
|
|
|
consisting of lines specifying submit message fields that take
|
|
|
|
|
user names, for example:
|
|
|
|
|
|
|
|
|
|
\code
|
|
|
|
|
Reviewed-by:
|
|
|
|
|
Signed-off-by:
|
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
The fields above appear below the submit message. They provide
|
|
|
|
|
completion for the aliases/public user names specified in the
|
|
|
|
|
\e{User/alias configuration file} as well as a button that opens the
|
|
|
|
|
aforementioned user name dialog.
|
|
|
|
|
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{SSH prompt command} specifies an ssh-askpass command that you
|
2011-09-27 11:53:38 +02:00
|
|
|
can use (on Linux) to prompt the user for a password when using SSH.
|
|
|
|
|
For example, \c ssh-askpass or \c x11-ssh-askpass, depending on the
|
|
|
|
|
ssh-askpass implementation that you use.
|
|
|
|
|
|
|
|
|
|
\endlist
|
|
|
|
|
|
|
|
|
|
\section1 Creating VCS Repositories for New Projects
|
|
|
|
|
|
|
|
|
|
\QC allows you to create repositories for version control systems that
|
|
|
|
|
support local repository creation, such as Git, Mercurial, or Bazaar.
|
|
|
|
|
When creating a new project by selecting \gui File > \gui{New File or
|
|
|
|
|
Project}, you can choose a version control system on the final wizard page.
|
|
|
|
|
|
|
|
|
|
You can also select \gui Tools and then select \gui {Create Repository}
|
|
|
|
|
in the submenu for the version control system.
|
|
|
|
|
|
|
|
|
|
To import a project that is under version control, choose \gui {File >
|
|
|
|
|
New File or Project > Project from Version Control} and select the
|
|
|
|
|
version control system that you use. Follow the instructions of the
|
|
|
|
|
wizard to import the project.
|
|
|
|
|
|
|
|
|
|
\section1 Using Version Control Systems
|
|
|
|
|
|
|
|
|
|
The \gui{Tools} menu contains a submenu for each supported version
|
|
|
|
|
control system.
|
|
|
|
|
|
|
|
|
|
The \gui{Version Control} output pane displays the commands that are
|
|
|
|
|
executed, a timestamp, and the relevant output. Select \gui {Window > Output
|
|
|
|
|
Panes > Version Control} to open the pane.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-vcs-pane.png
|
|
|
|
|
|
|
|
|
|
\section2 Adding Files
|
|
|
|
|
|
|
|
|
|
When you create a new file or a new project, the wizard displays a page
|
|
|
|
|
asking whether the files should be added to a version control system.
|
|
|
|
|
This happens when the parent directory or the project is already
|
|
|
|
|
under version control and the system supports the concept of adding files,
|
|
|
|
|
for example, Perforce and Subversion. Alternatively, you can
|
|
|
|
|
add files later by using the version control tool menus.
|
|
|
|
|
|
|
|
|
|
With Git, there is no concept of adding files. Instead, all modified
|
|
|
|
|
files must be staged for a commit.
|
|
|
|
|
|
|
|
|
|
\section2 Viewing Diff Output
|
|
|
|
|
|
|
|
|
|
All version control systems provide menu options to \e{diff} the current
|
|
|
|
|
file or project: to compare it with the latest version stored in the
|
|
|
|
|
repository and to display the differences. In \QC, a diff is displayed in a
|
|
|
|
|
read-only editor. If the file is accessible, you can double-click on a
|
|
|
|
|
selected diff chunk and \QC opens an editor displaying the file, scrolled to
|
|
|
|
|
the line in question.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-vcs-diff.png
|
|
|
|
|
|
|
|
|
|
\section2 Viewing Versioning History and Change Details
|
|
|
|
|
|
|
|
|
|
Display the versioning history of a file by selecting \gui{Log}
|
|
|
|
|
or \gui{Filelog}. Typically, the log output contains the date, the commit
|
|
|
|
|
message, and a change or revision identifier. Click on the identifier to
|
|
|
|
|
display a description of the change including the diff.
|
|
|
|
|
Right-clicking on an identifier brings up a context menu that lets you
|
|
|
|
|
show annotation views of previous versions (see \l{Annotating Files}).
|
2013-01-23 17:06:43 +02:00
|
|
|
With Git you can also choose to cherry-pick or revert a change.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
\image qtcreator-vcs-log.png
|
|
|
|
|
|
|
|
|
|
\section2 Annotating Files
|
|
|
|
|
|
|
|
|
|
Annotation views are obtained by selecting \gui{Annotate} or \gui{Blame}.
|
|
|
|
|
Selecting \gui{Annotate} or \gui{Blame} displays the lines of the file
|
|
|
|
|
prepended by the change identifier they originate from. Clicking on the
|
|
|
|
|
change identifier shows a detailed description of the change.
|
|
|
|
|
|
|
|
|
|
To show the annotation of a previous version, right-click on the
|
|
|
|
|
version identifier at the beginning of a line and choose one of the
|
|
|
|
|
revisions shown at the bottom of the context menu. This allows you to
|
|
|
|
|
navigate through the history of the file and obtain previous versions of
|
2013-02-27 11:37:13 +01:00
|
|
|
it. It also works for Git and Mercurial using SHA-1.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
The same context menu is available when right-clicking on a version
|
|
|
|
|
identifier in the file log view of a single file.
|
|
|
|
|
|
|
|
|
|
\section2 Committing Changes
|
|
|
|
|
|
|
|
|
|
Once you have finished making changes, submit them to the version control
|
|
|
|
|
system by choosing \gui{Commit} or \gui{Submit}. \QC displays a
|
|
|
|
|
commit page containing a text editor where you can enter your commit
|
|
|
|
|
message and a checkable list of modified files to be included.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-vcs-commit.png
|
|
|
|
|
|
|
|
|
|
When you have finished filling out the commit page information, click on
|
|
|
|
|
\gui{Commit} to start committing.
|
|
|
|
|
|
|
|
|
|
The \gui{Diff Selected Files} button brings up a diff view of the
|
|
|
|
|
files selected in the file list. Since the commit page is just another
|
|
|
|
|
editor, you can go back to it by closing the diff view. You can also check
|
|
|
|
|
a diff view from the editor combo box showing the \gui{Opened files}.
|
|
|
|
|
|
|
|
|
|
\section2 Reverting Changes
|
|
|
|
|
|
|
|
|
|
All supported version control system support reverting your project to
|
|
|
|
|
known states. This functionality is generally called \e reverting.
|
|
|
|
|
|
|
|
|
|
The changes discarded depend on the version control system.
|
|
|
|
|
|
|
|
|
|
A version control system can replace the \gui Revert menu option with other
|
|
|
|
|
options.
|
|
|
|
|
|
|
|
|
|
\section3 Reverting Changes Using Git
|
|
|
|
|
|
|
|
|
|
The Git version control system has an index that is used to stage
|
2012-09-21 16:05:58 +02:00
|
|
|
changes. The index is committed on the next commit. Git allows you to revert
|
2011-09-27 11:53:38 +02:00
|
|
|
back to the state of the last commit as well as to the state staged in the
|
|
|
|
|
index.
|
|
|
|
|
|
|
|
|
|
\list
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\li \gui Git > \gui {Current File} > \gui{Undo Unstaged Changes} reverts
|
|
|
|
|
all changes and resets the working directory to the state of the
|
|
|
|
|
index.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\li \gui Git > \gui {Current File} > \gui {Undo Uncommitted Changes}
|
|
|
|
|
reverts all changes, discarding the
|
2011-09-27 11:53:38 +02:00
|
|
|
index. This returns your working copy to the state it was in right
|
|
|
|
|
after the last commit.
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\li \gui Git > \gui {Local Repository} > \gui Reset opens a dialog
|
|
|
|
|
where you can select the SHA-1 to reset the working directory to.
|
|
|
|
|
This is useful after applying patches for review, for example. You
|
2013-04-22 17:46:35 +02:00
|
|
|
can choose between a \gui Soft reset that does not touch the index
|
|
|
|
|
file nor the working tree at all, a \gui Hard reset that discards
|
|
|
|
|
all changes to tracked files in working tree, and a \gui Mixed
|
|
|
|
|
reset that resets HEAD and the index (nothing remains staged)
|
|
|
|
|
without touching the working directory.
|
2012-07-31 14:59:41 +02:00
|
|
|
|
2011-09-27 11:53:38 +02:00
|
|
|
\endlist
|
|
|
|
|
|
|
|
|
|
\section2 Viewing Status
|
|
|
|
|
|
|
|
|
|
You can select \gui{Status} to view the status of the project or
|
|
|
|
|
repository.
|
|
|
|
|
|
|
|
|
|
\section2 Updating the Working Tree
|
|
|
|
|
|
|
|
|
|
You can select \gui Update to update your working tree with the latest
|
|
|
|
|
changes from the branch. Some version control systems allow you to choose
|
|
|
|
|
between updating the current project and updating all projects.
|
|
|
|
|
|
|
|
|
|
With Git, you stash your changes and then pull the changes from the
|
|
|
|
|
repository.
|
|
|
|
|
|
|
|
|
|
\section2 Deleting Files
|
|
|
|
|
|
|
|
|
|
You can select \gui Delete to delete obsolete files from the repository.
|
|
|
|
|
|
|
|
|
|
With Git, you delete the files from the working tree and then stage the
|
|
|
|
|
deleted files for a commit.
|
|
|
|
|
|
|
|
|
|
\section2 Using Additional Bazaar Functions
|
|
|
|
|
|
|
|
|
|
Bazaar is a free version control system sponsored by Canonical.
|
|
|
|
|
|
2013-02-27 11:41:31 +01:00
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Bazaar > \gui Pull to turn the branch into a
|
|
|
|
|
mirror of another branch. To update a mirror of the branch, select
|
|
|
|
|
\gui Push.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2012-09-28 10:41:36 +02:00
|
|
|
\section2 Using Additional ClearCase Functions
|
|
|
|
|
|
|
|
|
|
IBM Rational ClearCase is a version control, workspace management, parallel
|
|
|
|
|
development support, and build automation solution developed by IBM. The
|
2013-02-20 14:24:18 +01:00
|
|
|
ClearCase client plugin is available on Linux and Windows for accessing a
|
|
|
|
|
ClearCase server.
|
2012-09-28 10:41:36 +02:00
|
|
|
|
|
|
|
|
The \gui ClearCase submenu contains the following additional items:
|
|
|
|
|
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Menu Item
|
|
|
|
|
\li Description
|
2012-09-28 10:41:36 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Check In}
|
|
|
|
|
\li Create a permanent new version of the current file or all files
|
2012-09-28 10:41:36 +02:00
|
|
|
in the versioned object base (VOB).
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Check In Activity}
|
|
|
|
|
\li Check in checked-out versions in the change set of the current
|
2012-09-28 10:41:36 +02:00
|
|
|
Unified Change Management (UCM) activity.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Check Out}
|
|
|
|
|
\li Create a writable copy of a branch. If you check out files in a
|
2012-09-28 10:41:36 +02:00
|
|
|
UCM view, they are added to the change set of the UCM activity.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Undo Check Out}
|
|
|
|
|
\li Cancel the checkout for a file and delete the checked-out
|
2012-09-28 10:41:36 +02:00
|
|
|
version.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Undo Hijack}
|
|
|
|
|
\li Resolve hijacked files. If you change the read-only attribute of
|
2012-09-28 10:41:36 +02:00
|
|
|
a file that is loaded into a snapshot view and modify the file
|
|
|
|
|
without checking it out, you \e hijack the file.
|
|
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
\section2 Using Additional CVS Functions
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
CVS is an open source version control system.
|
|
|
|
|
|
2013-02-27 11:41:31 +01:00
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui CVS > \gui Edit to open a file for editing.
|
|
|
|
|
To discard the changes that you made in a file, select \gui Unedit.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
\section2 Using Additional Git Functions
|
|
|
|
|
|
|
|
|
|
Git is a fast decentralized version control system. Git is available
|
|
|
|
|
for Windows, Linux and Mac.
|
|
|
|
|
|
2012-07-31 14:59:41 +02:00
|
|
|
You can use the \l{http://code.google.com/p/gerrit/}{Gerrit} code review
|
|
|
|
|
tool for projects that use Git. You can apply and check out changes from
|
|
|
|
|
Gerrit in \QC 2.6 and later.
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section3 Working with the Current File
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Git > \gui {Current File} > \gui {Stage File for
|
|
|
|
|
Commit} to mark a new or modified file for committing to the repository.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
To undo this function, select \gui {Unstage File from Commit}.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section3 Working with the Current Project
|
|
|
|
|
|
|
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Git > \gui {Current Project} > \gui {Clean Project}
|
|
|
|
|
to clean the working directory. All files that are not under version control
|
|
|
|
|
are displayed in the \gui {Clean Repository} dialog. Ignored files are
|
|
|
|
|
deselected by default. Select the files to delete and click \gui Delete.
|
|
|
|
|
|
|
|
|
|
\section3 Working with Local Repositories
|
|
|
|
|
|
|
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Git > \gui {Local Repository} > \gui Clean to clean
|
|
|
|
|
the repository.
|
|
|
|
|
|
|
|
|
|
To show commits, select \gui Tools > \gui Git > \gui {Show Commit} and
|
|
|
|
|
select a commit to view. Enter the SHA-1 or reference of the commit in the
|
|
|
|
|
\gui Change field.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
To apply latest changes to the last commit, select \gui Tools > \gui Git >
|
|
|
|
|
\gui {Local Repository} > \gui {Amend Last Commit}. You can also edit the
|
|
|
|
|
commit message.
|
|
|
|
|
|
|
|
|
|
The following sections describe how to manage local and remote branches,
|
|
|
|
|
apply patches, and use stashes.
|
|
|
|
|
|
|
|
|
|
\section4 Working with Branches
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
To work with Git branches, select \gui{Branches}. The checked out branch
|
|
|
|
|
is shown in bold and underlined in the list of branches. Double-click branch
|
|
|
|
|
names to edit them.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-vcs-gitbranch.png "Branches dialog"
|
|
|
|
|
|
|
|
|
|
The following operations are supported:
|
|
|
|
|
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Menu Item
|
|
|
|
|
\li Description
|
2013-02-27 11:37:13 +01:00
|
|
|
\row
|
|
|
|
|
\li \gui{Refresh}
|
|
|
|
|
\li Refresh the list of branches.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Add}
|
|
|
|
|
\li Create new tracking and non-tracking branches.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Remove}
|
|
|
|
|
\li Remove a local branch. You cannot delete remote branches.
|
2013-02-27 11:37:13 +01:00
|
|
|
\row
|
|
|
|
|
\li \gui{Checkout}
|
|
|
|
|
\li Check out the selected branch and make it current. You can stash
|
|
|
|
|
changes you have made to tracked files.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Diff}
|
|
|
|
|
\li Show the differences between the selected and the current
|
2011-09-27 11:53:38 +02:00
|
|
|
branch.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Log}
|
|
|
|
|
\li Show the changes in a branch.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-27 11:37:13 +01:00
|
|
|
\li \gui Merge
|
|
|
|
|
\li Join the development histories in two branches together.
|
|
|
|
|
\row
|
|
|
|
|
\li \gui Rebase
|
|
|
|
|
\li Copy local commits to the updated upstream head.
|
2011-09-27 11:53:38 +02:00
|
|
|
\endtable
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section4 Applying Patches
|
|
|
|
|
|
|
|
|
|
Patches are rewriting instructions that can be applied to a set of files.
|
|
|
|
|
To apply a patch file that is open in \QC, select \gui Tools > \gui Git >
|
|
|
|
|
\gui {Local Repository} > \gui {Apply from Editor}.
|
|
|
|
|
|
|
|
|
|
To select the patch file to apply from the file system, select
|
|
|
|
|
\gui {Apply from File}.
|
|
|
|
|
|
|
|
|
|
\section4 Using Stashes
|
|
|
|
|
|
|
|
|
|
With Git, you can put your current set of changes onto a virtual shelf
|
|
|
|
|
called a \e stash. Stashes are useful, for example, to put aside a set of
|
|
|
|
|
changes to work on higher priority tasks or to pull in new chages from
|
|
|
|
|
another repository.
|
|
|
|
|
|
|
|
|
|
To stash all local changes, select \gui Tools > \gui Git >
|
|
|
|
|
\gui {Local Repository} > \gui Stash > \gui Stash. The working copy is reset
|
|
|
|
|
to the state it had after the last commit.
|
|
|
|
|
|
|
|
|
|
To display a dialog that shows all known stashes with options to restore,
|
|
|
|
|
display or delete them, select \gui Stashes.
|
|
|
|
|
|
|
|
|
|
To save a snapshot of your current work under a name for later reference,
|
|
|
|
|
select \gui {Stash Snapshot}. The working copy is unchanged. For example, if
|
|
|
|
|
you want to try something and find out later that it does not work, you can
|
|
|
|
|
discard the changes and return to the state of the snapshot.
|
|
|
|
|
|
|
|
|
|
To remove a single stashed state from the stash list and apply it on top of
|
|
|
|
|
the current working tree state, select \gui {Stash Pop}.
|
|
|
|
|
|
2011-09-27 11:53:38 +02:00
|
|
|
\section3 Working with Remote Repositories
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Git > \gui {Remote Repository} > \gui Pull to
|
|
|
|
|
pull changes from the remote repository. If there are locally modified
|
|
|
|
|
files, you are prompted to stash the changes. Select \gui Tools >
|
|
|
|
|
\gui Options > \gui {Version Control} > \gui Git and then select the
|
|
|
|
|
\gui {Pull with rebase} check box to perform a rebase operation while
|
|
|
|
|
pulling.
|
|
|
|
|
|
|
|
|
|
\section4 Managing Remote Repositories
|
|
|
|
|
|
|
|
|
|
To manage remote repositories available in Git, select \gui Tools > \gui Git
|
|
|
|
|
> \gui {Remote Repository} > \gui{Manage Remotes}. Double-click the names
|
|
|
|
|
and URLs of the remote repositories to edit them.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
The following operations are supported:
|
|
|
|
|
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Menu Item
|
|
|
|
|
\li Description
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Add}
|
|
|
|
|
\li Add a new remote repository.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Fetch}
|
|
|
|
|
\li Fetch all the branches and change information from a remote
|
2011-09-27 11:53:38 +02:00
|
|
|
repository.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Remove}
|
|
|
|
|
\li Remove a remote repository.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Refresh}
|
|
|
|
|
\li Refresh the list of remote repositories.
|
2011-09-27 11:53:38 +02:00
|
|
|
\endtable
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section4 Using Git with Subversion
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
You can use Git as a client for a Subversion server. To fetch changes from a
|
|
|
|
|
Subversion repository to a Git repository, select \gui Tools > \gui Git >
|
|
|
|
|
\gui {Remote Repository} > \gui Subversion > \gui Fetch.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
To view the Git Subversion log, select \gui Log.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section4 Reviewing Code with Gerrit
|
2012-07-31 14:59:41 +02:00
|
|
|
|
|
|
|
|
If your Git project uses Gerrit for code reviews, you can view your changes
|
|
|
|
|
in \QC.
|
|
|
|
|
|
|
|
|
|
Select \gui Tools > \gui Options > \gui {Version Control} > \gui Gerrit to
|
|
|
|
|
specify the connection to the Gerrit server.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-gerrit-options.png
|
|
|
|
|
|
|
|
|
|
You can see the same information about each change as in the Gerrit
|
|
|
|
|
web interface.
|
|
|
|
|
|
|
|
|
|
\image qtcreator-gerrit.png
|
|
|
|
|
|
|
|
|
|
To view details of the selected change, select \gui Diff.
|
|
|
|
|
|
|
|
|
|
To apply the selected change to the top of your local repository, select
|
|
|
|
|
\gui Apply. To remove the change after testing it, select \gui Tools >
|
2013-02-27 11:37:13 +01:00
|
|
|
\gui Git > \gui {Local Repository} > \gui Reset. In the
|
|
|
|
|
\gui {Undo Changes to} dialog, select the
|
2012-07-31 14:59:41 +02:00
|
|
|
state to reset the working directory to, and then select \gui OK.
|
|
|
|
|
|
|
|
|
|
To check out the change in a headless state, select \gui Checkout.
|
|
|
|
|
|
|
|
|
|
To refresh the list of changes, select \gui Refresh.
|
|
|
|
|
|
2013-02-27 11:37:13 +01:00
|
|
|
\section3 Working with Git Tools
|
|
|
|
|
|
|
|
|
|
To start the commit viewer for Git, select \gui Tools > \gui Git >
|
|
|
|
|
\gui {Git Tools} > \gui Gitk. You can also start the tool to view commits in
|
|
|
|
|
the current document or in the folder that contains the current document.
|
|
|
|
|
To specify arguments for running Gitk, select \gui Tools > \gui Options >
|
|
|
|
|
\gui {Version Control} > \gui Git.
|
|
|
|
|
|
|
|
|
|
To use some other application for viewing Git history, such as GitX or
|
|
|
|
|
QGit viewer, select \gui Tools > \gui Options > \gui {Version Control} >
|
|
|
|
|
\gui Git and specify the path to the application executable in the
|
|
|
|
|
\gui {Command} field. To start the application, select \gui Tools > \gui Git
|
|
|
|
|
> \gui {Git Tools} > \gui {Repository Browser}.
|
|
|
|
|
|
|
|
|
|
To resolve merge conflicts, select \gui Tools > \gui Git > \gui {Git Tools}
|
|
|
|
|
> \gui {Merge Tool}.
|
|
|
|
|
|
2011-09-27 11:53:38 +02:00
|
|
|
\section2 Using Additional Mercurial Functionality
|
|
|
|
|
|
|
|
|
|
Mercurial is a free, distributed source control management tool.
|
|
|
|
|
|
|
|
|
|
The \gui Mercurial submenu contains the following additional items:
|
|
|
|
|
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Menu Item
|
|
|
|
|
\li Description
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Import}
|
|
|
|
|
\li Apply changes from a patch file.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Incoming}
|
|
|
|
|
\li Monitor the status of a remote repository by listing
|
2011-09-27 11:53:38 +02:00
|
|
|
the changes that will be pulled.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Outgoing}
|
|
|
|
|
\li Monitor the status of a remote repository by listing
|
2011-09-27 11:53:38 +02:00
|
|
|
the changes that will be pushed.
|
|
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Pull}
|
|
|
|
|
\li Pull changes from the remote repository.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Push}
|
|
|
|
|
\li Push changes to the remote repository.
|
2011-09-27 11:53:38 +02:00
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
\section2 Using Additional Perforce Functions
|
|
|
|
|
|
|
|
|
|
Perforce is a fast software configuration management system developed by
|
|
|
|
|
Perforce Software.
|
|
|
|
|
|
|
|
|
|
When you start \QC, it looks for the executable specified
|
|
|
|
|
in the \gui{P4 command} field in \gui{Tools > Options > Version
|
|
|
|
|
Control > Perforce}. If the file is not found, the following error
|
|
|
|
|
message is displayed in the \gui {Version Control} output pane:
|
|
|
|
|
\gui {Perforce: Unable to determine the repository: "p4.exe"
|
|
|
|
|
terminated with exit code 1}. If you use Perforce, check that the
|
|
|
|
|
path to the executable is specified correctly in the \gui{P4 command}
|
|
|
|
|
field.
|
|
|
|
|
|
|
|
|
|
If you do not use Perforce, you can disable the Perforce plugin to
|
|
|
|
|
get rid of the error message. Choose \gui {Help > About Plugins} and
|
|
|
|
|
deselect the \gui Load check box for the \gui Perforce plugin in the
|
|
|
|
|
\gui {Version Control} group.
|
|
|
|
|
|
|
|
|
|
The \gui Perforce submenu contains the following additional items:
|
|
|
|
|
|
|
|
|
|
\table
|
|
|
|
|
\header
|
2013-02-06 08:50:23 +01:00
|
|
|
\li Menu Item
|
|
|
|
|
\li Description
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Describe}
|
|
|
|
|
\li View information about changelists and the files in them.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Edit File}
|
|
|
|
|
\li Open a file for editing.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Opened}
|
|
|
|
|
\li List files that are open for editing.
|
2011-09-27 11:53:38 +02:00
|
|
|
\row
|
2013-02-06 08:50:23 +01:00
|
|
|
\li \gui{Pending Changes}
|
|
|
|
|
\li Group files for commit.
|
2011-09-27 11:53:38 +02:00
|
|
|
\endtable
|
|
|
|
|
|
|
|
|
|
\section2 Using Additional Subversion Functions
|
|
|
|
|
|
|
|
|
|
Subversion is an open source version control system.
|
|
|
|
|
|
2013-02-27 11:41:31 +01:00
|
|
|
In addition to the standard version control system functions, you can
|
|
|
|
|
select \gui Tools > \gui Subversion > \gui Describe to display commit log
|
|
|
|
|
messages for a revision.
|
2011-09-27 11:53:38 +02:00
|
|
|
|
|
|
|
|
*/
|