Re: Moving from SVN to git - finally!
| From: | Mikhail Miroshenko | Date: | Wed, 30 Dec 2020 15:52:30 +0000 |
| Subject: | Re: Moving from SVN to git - finally! | ||
| References: | 1 2 | Groups: | php.doc |
| Request: | Send a blank email to phpdoc+get-969387758@lists.php.net to get a copy of this message | ||
This is all well and good, although I think the manual process of committing changes (via locally
applying patch) **only** complicates the work for maintainers :(Moreover, my question is, how do
maintainers find out about a PR (patch) in a git repo? Who should I mention to get the PR merged
asap?30.12.2020, 16:59, "Nikita Popov" <nikita.ppv@gmail.com>:On Tue, Dec 29, 2020
at 7:34 PM Andreas Heigl <andreas@heigl.org> wrote:Hey folks!
After some years we are finally at the point to do what so many have
been asking for: We will move the source-control of the
PHP-Documentation from SVN to git!
Tomorrow!
TL;DR
Tomorrow we will remove docs-karma from SVN, do a final transition and
then add doc-karma to git. Then all contributions to the
PHP-Documentation will be via git.php.net
Slightly longer version:
Throughout the last year we continuously moved the commits from SVN over
to the different repositories at git.php.net. 2 Days ago we finally
switched the actually creation of the docs from using the SVN-sources to
using the git-sources. It was a seamless transition and the broken
translations were broken before. So we managed to switch the VCS without
anyone noticing ;-)
But that will not be possible for the next step.
As everyone that is currently contributing to the docs via SVN will need
to do at least 2 things to be able to continue contributing!
* Checkout the docs-base from https://git.php.net/repository/doc/base.git
* Check out the english documentation from git@git.php.net:/doc/en.git
And if you are doing translations:
* Check out your respective language from
git@git.php.net:/doc/[language].git
Yes! You've seen that right! We moved away from the monorepo to one repo
per language. As at this point in time there are access restrictions on
the different languages this was a necessary move. There are pros and
cons to that that were addressed when we started that voyage. And you
can feel free to discuss them as soon as the transition has been made
and you have found someone doing the necessary work for a further change ;-)
And as git doesn't know about "revisions" we had to change one thing for
the translations: So far you kept the revision of the english doc you
base the translation on in the attribute "en-revision". That will now
change! After the switch you will need to add the _commit-hash_ of the
english doc there instead!
Apart from that the translation workflow itself stays the same. We only
changed the Version Control System, nothing else.
So what will be the next steps now?
As already mentioned: Sometime tomorrow we will switch off karma for
svn.php.net.
Then we will do one last transition to git and modify the repos so that
the revision is replaced by the commit-hash
Then we will switch karma on for git.php.net
And when that is finished, we will create the github mirrors so that
everyone can create PRs for the docs and the translations!
That's it.
Almost...
As there is one thing though that is not done yet which we need some
help with: The revision-check! For those of you that do not know what it
is: Head over to http://doc.php.net/revcheck.php and
have a look. In
short: It shows how outdated a translation is. This was tightly coupled
to SVN and it is much harder to convert to git as originally
anticipated. So any help on that is highly appreciated! Patches for
http://git.php.net/?p=web/doc.git;a=blob;f=scripts/rev.php
are
definitely welcome!
But that is something for a new challenge!
Looking forward to being able to put a decade long challenge for the
community and a 4+ year challenge for me to a good end tomorrow!
Let's all cross fingers that everything goes as smooth as expected!
CheersThe SVN -> Git migration has finished. If you have phpdoc karma, you should be able to push
to the "doc" repos listed on http://git.php.net/
now.Note that the upstream Git repos are hosted on git.php.net (e.g. http://git.php.net/?p=doc/en.git;a=summary),
but have mirrors on GitHub (https://github.com/php/doc-en). You should always push changes to the
upstream repo, not the GitHub mirror. The GitHub mirrors only exist to accept pull requests.It will
take a while for all the tooling to catch up, so in the meantime some notes on how we typically
merge pull requests in php-src:1. Append ".patch" to the pull request URL: https://github.com/php/doc-en/pull/293.patch2.
Download the patch: wget https://patch-diff.githubusercontent.com/raw/php/doc-en/pull/293.patch3.
Apply the patch: git am 293.patch4. Auto-close the pull request: git commit --am and add
"Closes php/doc-en#293" to the commit message5. Push: git push origin masterI expect this
workflow to be automated for documentation repositories in the future.Regards,Nikita