Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Andreas Heigl
    @heiglandreas
    I finally did it! Thanks for letting me work on this for so long. I finally managed to start to understand git a bit deeper :-)
    I added the corresponding files to the meta-repo and added the bash-commands that need to be executed to the wiki.
    All in all what happens is, that the script that replaces the revision-numbers in the files with the corresponding hash from the english repo is executed as tree-filter via git filter-branch. That of course modifies the repository and changes the hashes that are up to now linked to the SVN-revisions. Therefore in a second step these linked hashes need to be replaced in the revmap file of git-svn located in .git/svn/refs/remotes/origin/trunk/.rev_map.[UUID of the SVN-remote from .git/svn/metadata].
    Andreas Heigl
    @heiglandreas
    That took me a while to figure out and adapt appropriately. But that was not everything. Of course the old hashes need to be relpaced with the new ones in several other files for git to understand that the new hashes are now to be used instead of the old ones. greping for old hashes and replacing them in the found files then did the trick. So now we can do a test run on a box that we can set up a cronjob on that can then push the modified repo to the php git server.
    If you have questions: feel free to ask, but expect a low response rate for the next 2 weeks as I'm still on holidays ;-)
    Nikita Popov
    @nikic
    Hey
    I'm a bit out of the loop right now
    Is it right that what is needed right now is just access to the doc git repos on git.php.net for @heiglandreas ?
    @heiglandreas Would it be possible to set up the mirroring for https://github.com/phpdoctest/de to see how things look like?
    Andreas Heigl
    @heiglandreas
    Force-push Access to the documentation-git -repos on git-php.net would be extremely helpfull. As well as either someone that creates the missing repos or karma (and a short howto) for me to do that
    Setting up the mirroring to the phpdoctest-repo would then be a next step. Is there a howto on ... well.. how to do that? ;-)
    But currently I'm still working on the issue with the back-reference. It turned out that rewriting the file is not possible as then SVN is not able to pull in new changes to the file as the file has been modified localy and that modification has not been backported.
    Currently I'm looking into creating one mapping-file that contains the filepath and the hash of the associated file. So instead of having the info in the file itself it would be in one dedicated file within each translation. That would probably also speed up some other tasks as not every file needs to be parsed but I'll see to that later....
    Nikita Popov
    @nikic
    Hrm, I see
    Nikita Popov
    @nikic
    Ugh, is it possibly to work around the whole git svn issue by having one repo (or branch) that has the pristine history created by git svn, and another that has the rewritten one? You would remember at which commit you are in the original, then do the git svn rebase, and then copy over the new commits.
    Andreas Heigl
    @heiglandreas
    Pffftttt... That is an interesting idea as well....
    But getting the meta data over would be quite tricky....
    We could use git am but that would then again raise issues with the modified content.....
    Andreas Heigl
    @heiglandreas
    probably just roll back the modification of the hash and then appl the changes and afterwards apply the new hash....
    Richard Quadling
    @rquadling
    Hi. I've just listened to https://phpinternals.news/28. Great to hear movement of PHPDoc to Git is being actively worked on.
    I've got a question ... A "Did anyone think of this ..." sort of thing.
    Richard Quadling
    @rquadling

    With the svn translations, the translated file contains 2 revision numbers. The en revision on which this lang revision is based. The en revision is updated by the translator when they make their changes ... "We are upto this point on this file" sort of thing. All worked great.

    In git, due to hashes rather than sequential numbering, not so easy.

    So. What if. Rather than maintaining the association in file, place that information elsewhere. Tooling would be required. Amending an entry in svn would add a new entry in the index. Editing a file in git would look at the index to see what the revision number was for the source file. Sort of keep both svn and git in sync via an index?

    I've got zero idea on the complexity, but it would allow svn to be svn, and git to be git, and we have glue to hold them together.

    Andreas Heigl
    @heiglandreas
    Hey Richard. Thanks for sharing your thought. Actually that is what I'm currently thinking of doing ;-)
    Andreas Heigl
    @heiglandreas
    Keeping the connection not via the Revision-Number inside the file but via the hash of the english revision in a separate .hashtable-file
    Richard Quadling
    @rquadling
    Would having 1 file be overloaded for access?
    Would some sort of key/value store be a better option? Redis maybe?
    Andreas Heigl
    @heiglandreas
    Nope. The whole system is file-based and people need to be able to modify that file as soon as they base the translation on a different version of the english original, so that definitely needs to be something that resides in the repo
    Pieter Hordijk
    @PeeHaa
    @heiglandreas
    Can I find the current status of the migration somewhere? I don't see it in the wiki (besides https://wiki.php.net/doc/git)
    Or can you give me a TL;DR of all of the above? Is there something that is blocked now that needs more eyes/hands?
    Andreas Heigl
    @heiglandreas
    The current status is documented at https://github.com/phpdoctest/meta/wiki/process and in regular emails to the docs and internal mailinglists. The last ones are https://news-web.php.net/php.doc/969387429 and https://externals.io/message/108350
    Currently blocking is the internal structure of the PHP project as I either need access to certain things or someone with access do the stuff for me.
    Additionally the repos will need to be recreated as the authors file was missing. But that is a mere detail and can now easily be done next weekend....
    but pushing those changes upstream will again break the consistency in the branches as then suddenly the master is not what they expect it to be....
    Pieter Hordijk
    @PeeHaa
    What specific boxes do you need access to?
    Andreas Heigl
    @heiglandreas
    git.php.net, docs.php.net, rsync.php.net, svn.php.net
    This is the task-list:
    • Create language repos for es, fr, it, ja, pl, pt_BR, ro, ru, tr, uk and zh on git.php.net (someone with access on https://wiki.php.net/systems/php-git1)
    • Grant force-push access to a user that can push the modified commits from svngit.php.net (can be me, can be a dedicated user) (someone with karma)
    • Add the remotes to the respective repos on svngit.php.net and set up automated forcepush (myself)
    • Switch source-code retrieval on docs.php.net from svn.php.net to git.php.net (someone with access according to https://wiki.php.net/systems/euk2)
    • Switch revcheck-generation from the current script to https://github.com/phpdoctest/doc-base/blob/master/scripts/revcheck.php (someone with access according to https://wiki.php.net/systems/euk2)
    • Verify that everything works as expected (Documentation team. Who would that be? @salathe?)
    • Switch source-code retrieval for documentation on rsync.php.net from SVN to git (Someone with access according to https://wiki.php.net/systems/sc2)
    • Setup github mirroring and processes to merge merge-requests from github into the documentation git (Someone with access. Who would that be???)
    • Rewrite setup-instructions for documentation and send email to docs teams regarding new process (myself with help from? @salathe?)
    • Make SVN readonly (someone with access on https://wiki.php.net/systems/svn2)
    • Shutdown cronjobs on svngit.php.net (myself)
    Pieter Hordijk
    @PeeHaa
    processes to merge merge-requests from github into the documentation git
    Should imo be everybody with docs karma
    ok thanks for the info
    awesome job
    <3
    Pieter Hordijk
    @PeeHaa
    Regarding either getting access or someone with access it seems to be a matter of getting people together (@nikic @salathe)
    Andreas Heigl
    @heiglandreas
    The problem in this whole project is not a technical one.... If you understand what I mean....

    awesome job

    Thanks! :grin:

    Pieter Hordijk
    @PeeHaa
    Yeah that seems to be a recurring theme :P
    BTW do you have a stack overflow account?
    Several people are hanging out here https://chat.stackoverflow.com/rooms/11/php which might make communication and getting things done easier as several of the people you need will already be there
    Andreas Heigl
    @heiglandreas
    Aaaand another chat.... :grin: