Difference between revisions of "Project GIT Information"
imported>Eliddell (Created page with "Category:Developers This page provides instructions regarding the project's GIT repositories ==What is GIT?== GIT, short for Global Information Tracker ([http://kerneltr...") |
imported>SlavekB (→Using GIT: Update instructions for cloning the entire repository tree) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 20: | Line 20: | ||
==Using GIT== |
==Using GIT== |
||
− | ===To check out the entire source tree=== |
+ | ===To check out the entire source tree from mirror=== |
+ | |||
+ | '''NOTE: Mirror of GIT repository is used for read-only access (i.e. for non-developers). For pushing changes to GIT is needed to use master repository or setup separate url for pushing changes.''' |
||
+ | |||
+ | <nowiki>git clone https://mirror.git.trinitydesktop.org/gitea/TDE/tde</nowiki> |
||
+ | <nowiki>git clone https://mirror.git.trinitydesktop.org/gitea/TDE/scripts tde/scripts</nowiki> |
||
+ | cd tde |
||
+ | ./scripts/switch_all_submodules_to_head_and_clean anonymous |
||
+ | |||
+ | ===To check out the entire source tree from master repository=== |
||
====With GIT version < 1.6.5==== |
====With GIT version < 1.6.5==== |
||
Line 26: | Line 35: | ||
'''NOTE: ‘<username>@‘ should be removed from commands listed below if read-only anonymous (i.e. non-developer) access is desired.''' |
'''NOTE: ‘<username>@‘ should be removed from commands listed below if read-only anonymous (i.e. non-developer) access is desired.''' |
||
− | <nowiki>git clone |
+ | <nowiki>git clone https://<username>@scm.trinitydesktop.org/scm/git/tde</nowiki> |
+ | <nowiki>git clone https://<username>@scm.trinitydesktop.org/scm/git/scripts tde/scripts</nowiki> |
||
cd tde |
cd tde |
||
− | git submodule init -- scripts |
||
− | git submodule update -- scripts |
||
./scripts/switch_all_submodules_to_head_and_clean |
./scripts/switch_all_submodules_to_head_and_clean |
||
Line 36: | Line 44: | ||
Due to the use of submodules, in order to checkout the TDE tree with GIT version >= 1.6.5 the ‘--recursive‘ option must be given: |
Due to the use of submodules, in order to checkout the TDE tree with GIT version >= 1.6.5 the ‘--recursive‘ option must be given: |
||
− | <nowiki>git clone --recursive |
+ | <nowiki>git clone --recursive https://<username>@scm.trinitydesktop.org/scm/git/tde</nowiki> |
'''NOTE: For public read-only access use "anonymous" as the username.''' |
'''NOTE: For public read-only access use "anonymous" as the username.''' |
||
Line 42: | Line 50: | ||
You may also wish to skip the numerous password prompts that will appear on first checkout; these two tasks can be accomplished with the following command: |
You may also wish to skip the numerous password prompts that will appear on first checkout; these two tasks can be accomplished with the following command: |
||
− | <nowiki>GIT_ASKPASS=echo git clone --recursive |
+ | <nowiki>GIT_ASKPASS=echo git clone --recursive https://anonymous@scm.trinitydesktop.org/scm/git/tde</nowiki> |
===To check out a single project=== |
===To check out a single project=== |
||
Line 48: | Line 56: | ||
Find the project you are interested in on the public web interface |
Find the project you are interested in on the public web interface |
||
− | <nowiki>git clone |
+ | <nowiki>git clone https://<username>@scm.trinitydesktop.org/scm/git/<project name></nowiki> |
cd <project name> |
cd <project name> |
||
git submodule init |
git submodule init |
||
Line 60: | Line 68: | ||
===To nondestructively update the current repository to the latest HEAD version=== |
===To nondestructively update the current repository to the latest HEAD version=== |
||
− | git pull |
+ | git pull --rebase |
NOTE: This does NOT update supermodules or submodules of the current repository |
NOTE: This does NOT update supermodules or submodules of the current repository |
Latest revision as of 16:35, 7 August 2019
This page provides instructions regarding the project's GIT repositories
What is GIT?
GIT, short for Global Information Tracker (among other things) is a distributed version control system. It is the system in which the TDE code is stored, and allows multiple developers to work collaboratively without accidentally erasing each other's work. It also maintains a history of every single change that was ever made to the TDE source code.
Terms you will need to know:
Check out: This is the act of retrieving an editable copy of the source code from our servers. Unless you are a TDE developer you will not be able to commit any changes you make to our servers, but you can generate patches containing your changes from the code you originally checked out.
Commit: This is the act of uploading your modified source code to the project's server. When this occurs, your changes become part of the codebase that is being developed, and will therefore be accessible by anyone who downloads a copy of the source code.
Module: A single GIT repository, in the context of the TDE project usually an application or library.
Submodule: A module that resides within the directory structure of another module, and is version locked by the outer module. In the context of the TDE project, common build directories (admin/ and cmake/) are inserted as submodules into each application and library. This structure allows a change made to the submodule source code to be automatically propagated to all modules that use the submodule.
HEAD: This is the latest version of the source code available, and therefore is the version that any changes will be applied to or differences will be calculated from. In most cases HEAD will be the latest version available on the TDE project's servers, however if you have made any local commits the last commit made will be used as HEAD.
Using GIT
To check out the entire source tree from mirror
NOTE: Mirror of GIT repository is used for read-only access (i.e. for non-developers). For pushing changes to GIT is needed to use master repository or setup separate url for pushing changes.
git clone https://mirror.git.trinitydesktop.org/gitea/TDE/tde git clone https://mirror.git.trinitydesktop.org/gitea/TDE/scripts tde/scripts cd tde ./scripts/switch_all_submodules_to_head_and_clean anonymous
To check out the entire source tree from master repository
With GIT version < 1.6.5
NOTE: ‘<username>@‘ should be removed from commands listed below if read-only anonymous (i.e. non-developer) access is desired.
git clone https://<username>@scm.trinitydesktop.org/scm/git/tde git clone https://<username>@scm.trinitydesktop.org/scm/git/scripts tde/scripts cd tde ./scripts/switch_all_submodules_to_head_and_clean
With GIT version >= 1.6.5
Due to the use of submodules, in order to checkout the TDE tree with GIT version >= 1.6.5 the ‘--recursive‘ option must be given:
git clone --recursive https://<username>@scm.trinitydesktop.org/scm/git/tde
NOTE: For public read-only access use "anonymous" as the username.
You may also wish to skip the numerous password prompts that will appear on first checkout; these two tasks can be accomplished with the following command:
GIT_ASKPASS=echo git clone --recursive https://anonymous@scm.trinitydesktop.org/scm/git/tde
To check out a single project
Find the project you are interested in on the public web interface
git clone https://<username>@scm.trinitydesktop.org/scm/git/<project name> cd <project name> git submodule init git submodule update
To discard all local changes and update to the latest HEAD version
cd <top level tde directory> ./scripts/switch_all_submodules_to_head_and_clean
To nondestructively update the current repository to the latest HEAD version
git pull --rebase
NOTE: This does NOT update supermodules or submodules of the current repository
To commit all changes made to the complete source tree
cd <top level tde directory> ./scripts/commit_all_submodules
To commit changes in the current repository to the TDE servers
git commit -a git push origin HEAD
NOTE: This does NOT commit supermodules or submodules of the current repository