Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Platform-releng/Git Workflows"
(→Create a patch) |
|||
Line 1: | Line 1: | ||
We'd like to capture some common CVS workflows used by the Eclipse Project and spell out the git/EGit equivalent. | We'd like to capture some common CVS workflows used by the Eclipse Project and spell out the git/EGit equivalent. | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
= Clone a repo = | = Clone a repo = | ||
Line 5: | Line 7: | ||
The first step is to clone the one or more repos you need to work on. You want to clone the repo to a location ''outside'' your workspace. Then use the '''EGit Import Projects''' option to import the projects. | The first step is to clone the one or more repos you need to work on. You want to clone the repo to a location ''outside'' your workspace. Then use the '''EGit Import Projects''' option to import the projects. | ||
− | Refer to the [[EGit/User Guide]] for instructions and pictures. | + | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. |
# Switch to the '''Git Repository Exploring''' Perspective | # Switch to the '''Git Repository Exploring''' Perspective | ||
Line 53: | Line 55: | ||
To start working in '''HEAD''' you must clone your repository and checkout a working copy. By default, cloning the repo checks out the '''master''' branch, which is the same as '''HEAD''' in CVS. | To start working in '''HEAD''' you must clone your repository and checkout a working copy. By default, cloning the repo checks out the '''master''' branch, which is the same as '''HEAD''' in CVS. | ||
+ | |||
+ | See [[#Clone a repo]]. | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
The constant '''HEAD''' is used in GIT as well, but has a completely different meaning. In GIT '''HEAD''' means the pointer to the latest commit in your currently checked-out branch (more or less). | The constant '''HEAD''' is used in GIT as well, but has a completely different meaning. In GIT '''HEAD''' means the pointer to the latest commit in your currently checked-out branch (more or less). | ||
− | + | ||
= Start working in a new branch = | = Start working in a new branch = | ||
For example, create the R3_7_maintenance branch for your repo. This example is for the case that your branch doesn't already exist as '''refs/remotes/origin/R3_7_maintenance'''. | For example, create the R3_7_maintenance branch for your repo. This example is for the case that your branch doesn't already exist as '''refs/remotes/origin/R3_7_maintenance'''. | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
# right click on one of your projects and choose '''Team>Switch To>New Branch''' | # right click on one of your projects and choose '''Team>Switch To>New Branch''' | ||
Line 78: | Line 86: | ||
= Create a patch = | = Create a patch = | ||
− | We have 2 options for accepting contributions from the community. See [[Development_Resources/Handling_Git_Contributions]] (prefered) and [[Git#IP_process_implications_of_DVCS]]. | + | We have 2 options for accepting contributions from the community. See [[Development_Resources/Handling_Git_Contributions]] (prefered) and [[Git#IP_process_implications_of_DVCS]]. Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. |
To create a patch: | To create a patch: | ||
Line 89: | Line 97: | ||
= Apply a patch = | = Apply a patch = | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
= Tag the mapfile for a build = | = Tag the mapfile for a build = | ||
+ | |||
+ | |||
= Commit changes to the main repo = | = Commit changes to the main repo = | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
= Update to pull in the latest changes to HEAD = | = Update to pull in the latest changes to HEAD = | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. | ||
= Merge conflicting changes = | = Merge conflicting changes = | ||
+ | |||
+ | Refer to the [[EGit/User Guide]] for more detailed instructions and pictures. |
Revision as of 09:03, 5 July 2011
We'd like to capture some common CVS workflows used by the Eclipse Project and spell out the git/EGit equivalent.
Refer to the EGit/User Guide for more detailed instructions and pictures.
Contents
Clone a repo
The first step is to clone the one or more repos you need to work on. You want to clone the repo to a location outside your workspace. Then use the EGit Import Projects option to import the projects.
Refer to the EGit/User Guide for more detailed instructions and pictures.
- Switch to the Git Repository Exploring Perspective
- Use Clone a Git repository
- you can paste in your connection URL and it should do the right thing. Some URLs:
- ssh://userid@git.eclipse.org/gitroot/equinox/rt.equinox.bundles.git
- ssh://userid@git.eclipse.org/gitroot/equinox/rt.equinox.framework.git
- ssh://userid@git.eclipse.org/gitroot/equinox/rt.equinox.incubator.git
- ssh://userid@git.eclipse.org/gitroot/equinox/rt.equinox.p2.git
- ssh://userid@git.eclipse.org/gitroot/equinox/rt.equinox.security.git
- ssh://userid@git.eclipse.org/gitroot/jdt/eclipse.jdt.core.git
- ssh://userid@git.eclipse.org/gitroot/jdt/eclipse.jdt.debug.git
- ssh://userid@git.eclipse.org/gitroot/jdt/eclipse.jdt.git
- ssh://userid@git.eclipse.org/gitroot/jdt/eclipse.jdt.ui.git
- ssh://userid@git.eclipse.org/gitroot/pde/eclipse.pde.build.git
- ssh://userid@git.eclipse.org/gitroot/pde/eclipse.pde.git
- ssh://userid@git.eclipse.org/gitroot/pde/eclipse.pde.incubator.git
- ssh://userid@git.eclipse.org/gitroot/pde/eclipse.pde.ui.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.debug.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.releng.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.resources.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.runtime.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.swt.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.team.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.text.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.ua.git
- ssh://userid@git.eclipse.org/gitroot/platform/eclipse.platform.ui.git
- Next
- Select all branches to clone
- Next
- Confirm the location that it will clone the repository into.
- an initial branch of master and a remote name of origin are standard.
- Finish - Now just sit back while git copies the entire repo to your harddrive :-)
We need to get the projects from the repo into our workspace:
- right click on your newly cloned repo and select Import Projects
- you want Import existing projects from the Working Directory
- Next
- Select the projects that you want to import from the repository
- Finish
Now you can start working.
Start working in HEAD
To start working in HEAD you must clone your repository and checkout a working copy. By default, cloning the repo checks out the master branch, which is the same as HEAD in CVS.
See #Clone a repo.
Refer to the EGit/User Guide for more detailed instructions and pictures.
The constant HEAD is used in GIT as well, but has a completely different meaning. In GIT HEAD means the pointer to the latest commit in your currently checked-out branch (more or less).
Start working in a new branch
For example, create the R3_7_maintenance branch for your repo. This example is for the case that your branch doesn't already exist as refs/remotes/origin/R3_7_maintenance.
Refer to the EGit/User Guide for more detailed instructions and pictures.
- right click on one of your projects and choose Team>Switch To>New Branch
- you need to pick a source ref.
- HEAD == current checked out commit
- refs/heads/master means your master branch.
- refs/remotes/origin/R3_7_maintenance - the existing remote branch. If you pick this one and name your local branch the same, EGit will automatically create a tracked branch.
- refs/tags/R3_7 is the tags to branch from
- name the branch R3_7_maintenance
- leave "Check out the new branch" selected.
This will create a new branch for you to work on. Once you've made your initial commits, you need #Commit changes to the main repo. Pushing up to the repo will push any new branches you've created as well.
PW
Create a patch
We have 2 options for accepting contributions from the community. See Development_Resources/Handling_Git_Contributions (prefered) and Git#IP_process_implications_of_DVCS. Refer to the EGit/User Guide for more detailed instructions and pictures.
To create a patch:
- You need to show the commits in the history view.
- Either right-click on a file you just committed and Show in history
- or right-click on the project and Show In>History, then find the commit you want
- right click on the commit in the History view, and select Create Patch
- use Next if you'd like the patch in the standard git mbox format
Apply a patch
Refer to the EGit/User Guide for more detailed instructions and pictures.
Tag the mapfile for a build
Commit changes to the main repo
Refer to the EGit/User Guide for more detailed instructions and pictures.
Update to pull in the latest changes to HEAD
Refer to the EGit/User Guide for more detailed instructions and pictures.
Merge conflicting changes
Refer to the EGit/User Guide for more detailed instructions and pictures.