Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| gitworkflow [2015/10/31 04:22] – Update & cleanup KubilayKocak | gitworkflow [2021/12/14 20:46] (current) – Since this is the top Google result, Give users half a chance of finding the official git repo and 'git clone' URI. DavidOBrien | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | The official %%FreeBSD%% Git repo is now at https:// | ||
| + | |||
| + | Clone TL;DR: | ||
| + | (public-mirror) | ||
| + | https:// | ||
| + | ssh: | ||
| + | (developers-only) | ||
| + | ssh: | ||
| + | |||
| + | The content of this page needs to be updated, please refer to the latest doc from git migration WG at https:// | ||
| + | |||
| + | Update: 2020-12-14: These are not the repositories for the 2020/2021 svn to git conversion, please see the note above. The below is mostly historic information and will soon be entirely obsolete. | ||
| + | |||
| ====== Introduction ====== | ====== Introduction ====== | ||
| - | This page describes | + | This page used to describe |
| base other work on. | base other work on. | ||
| - | The repositories | + | The repositories |
| - | + | ||
| - | Using git to commit changes to these repositories is not officially supported (but doable). Instead it aims to serve as | + | |
| - | a collaboration point by using additional tools like Github, Gitorious, or Gerrit, etc. | + | |
| Bear in mind that git does not replace use of Subversion in %%FreeBSD%% and the | Bear in mind that git does not replace use of Subversion in %%FreeBSD%% and the | ||
| repository is currently offered on a best-effort basis only. The steps to recreate the conversion are outlined below, so that people can replicate the process in-house should they wish to. | repository is currently offered on a best-effort basis only. The steps to recreate the conversion are outlined below, so that people can replicate the process in-house should they wish to. | ||
| - | CAVEAT EMPTOR: It is possible | + | CAVEAT EMPTOR: It is possible that the repositories might need to be re-done due to bugs in the converter. |
| This would result in changed commit IDs for the impacted branches. | This would result in changed commit IDs for the impacted branches. | ||
| As the actual tree objects for a certain SVN revision will remain identical, it will always be possible to rebase or merge your work on these new branches and not run into any merge conflicts. | As the actual tree objects for a certain SVN revision will remain identical, it will always be possible to rebase or merge your work on these new branches and not run into any merge conflicts. | ||
| Advance notice will be provided if this proves necessary, along with advice on the required git commands. | Advance notice will be provided if this proves necessary, along with advice on the required git commands. | ||
| + | |||
| + | In fact, "bad SVN metadata" | ||
| ====== Repositories ====== | ====== Repositories ====== | ||
| Line 21: | Line 33: | ||
| The repository mirrors are updated at least hourly. Should they lag the SVN repository by more than a day, please create a [[https:// | The repository mirrors are updated at least hourly. Should they lag the SVN repository by more than a day, please create a [[https:// | ||
| - | | + | As of 2020-12-14, canonical repository of doc has been migrate to git: |
| - | * **[[https://github.com/freebsd/ | + | |
| - | * **[[https:// | + | |
| - | * git:%%//%%git-beta.freebsd.org/ | + | * '' |
| - | * git:%%//%%git-beta.freebsd.org/ | + | |
| - | * git:%%//%%git-beta.freebsd.org/ | + | |
| + | |||
| + | ports: | ||
| + | * **[[https:// | ||
| + | * https://cgit-beta.freebsd.org/ | ||
| + | * '' | ||
| + | |||
| + | src: | ||
| + | * **[[https:// | ||
| + | * https://cgit-beta.freebsd.org/ | ||
| + | * '' | ||
| ====== Quick Start ====== | ====== Quick Start ====== | ||
| Line 36: | Line 58: | ||
| $ git clone --config remote.origin.fetch=' | $ git clone --config remote.origin.fetch=' | ||
| $ cd freebsd && git pull # For some reason, the notes will not be fetched during the clone operation ... | $ cd freebsd && git pull # For some reason, the notes will not be fetched during the clone operation ... | ||
| - | $ hack, hack, hack | + | (hack, hack, hack) |
| $ git commit | $ git commit | ||
| </ | </ | ||
| Line 48: | Line 70: | ||
| See any other git howto or documentation if you're stuck on the basics. | See any other git howto or documentation if you're stuck on the basics. | ||
| - | A useful reference for the issue with notes is http:// | + | A useful reference for the issue with notes is [[https:// |
| ===== Adding SVN Revision Notes to an Existing Clone ===== | ===== Adding SVN Revision Notes to an Existing Clone ===== | ||
| Line 78: | Line 100: | ||
| [[GitWorkflow/ | [[GitWorkflow/ | ||
| - | |||
| - | ===== Experimental git-svn bootstrap ===== | ||
| - | |||
| - | There is an experimental git-svn bootstrap for quickly getting a complete git-svn enabled repository of your own. | ||
| - | |||
| - | Visit https:// | ||
| ====== FAQ ====== | ====== FAQ ====== | ||
| - | * I want authornames! | + | * I want authornames! |
| * Why the full history and not only since day X It would make the history incompatible with other people' | * Why the full history and not only since day X It would make the history incompatible with other people' | ||
| Line 95: | Line 111: | ||
| * SVN merges for single revisions (that span only parts of the tree then), are not really representable as merges in git and instead are called cherry-picks there. The converter tries to be smart about whole tree merges however -- this heuristic is only activated for the head/, user/, and projects/ branches. A whole-tree merge of project/foo into head/ should thus be correctly represented in git. Merges from head/ to stable/ or from contrib/ to head/ will be plain commits, i.e. " | * SVN merges for single revisions (that span only parts of the tree then), are not really representable as merges in git and instead are called cherry-picks there. The converter tries to be smart about whole tree merges however -- this heuristic is only activated for the head/, user/, and projects/ branches. A whole-tree merge of project/foo into head/ should thus be correctly represented in git. Merges from head/ to stable/ or from contrib/ to head/ will be plain commits, i.e. " | ||
| + | |||
| + | ===== September 2019 notes/ | ||
| + | |||
| + | Sometime around September 2019, refs/ | ||
| + | |||
| + | < | ||
| + | $ git fetch -f < | ||
| + | </ | ||
| + | |||
| + | Where '' | ||
| ====== Verification ====== | ====== Verification ====== | ||
| Line 154: | Line 180: | ||
| See the project branch at [[http:// | See the project branch at [[http:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | {{tag> | ||