пн, 11 нояб. 2019 г. в 17:02, Luigi Toscano <[email protected]>: > > Alexander Potashev ha scritto: > > вс, 10 нояб. 2019 г. в 18:09, Luigi Toscano <[email protected]>: > >> Most of translators are not so technical as the developers. And even > >> developers can shoot them in the foot with git, I see many issues coming > >> from > >> unwanted merges. > > > > We can block unwanted merged on the server with a Git hook like this: > > https://github.com/FabreFrederic/git-hook-pre-receive-reject-merge-commit > > When I talk about local merges, I foresee a bit of mess when resolving a merge > locally, which may result in proper commits whose content has an invalid > syntax.
I don't get it. If you have conflicting changes, either with SVN or Git, you have to resolve the conflict manually. Of course it's easy to break the syntax while doing so, however SVN does not make it any easier than Git. > > Cloning the whole repo would be too much for some translators, however > > the new Git feature "git clone --filter" might be a solution: > > https://unix.stackexchange.com/a/468182 > > Documentation does not seem to help (or at least I don't seem to find it in > the man pages for git 2.24). Do you know how it could filter just some > directories? It seems more focused on filtering by object type. OK, I now tried this approach with Git 2.23 (see attached log) and found horrible problems that make it basically unusable: 1. git-checkout downloads each file in a new SSH connection. It make the download really slow: less than 1 file per second in my setup. That means downloading of translations into one language would take more than an hour. 2. git-status silently tries to download to whole Git repository. 3. git-commit tries to download some files one by one again. > > Shall I create a new Phabricator task "[WIP] Migrate translations from > > SVN to Git" so we can put relevant ideas in one place? > > I don't know. For me having a board and tasks (it's not just a single task, > it's an entire project) sounds like there is something that can be > implemented, and I don't think it's the case. The tag [WIP] would hint that we are not sure if it can be implemented. We can even name it "Reasons why translations cannot migrate to Git", if necessary. > I think we should first document all the answers to this recurring questions > first. Agreed. IMO a Phabricator "task" would be the most appropriate place to document these answers because we don't have better options: Community Wiki and Nextcloud are not very suitable for discussions. -- Alexander Potashev
[aspotashev@candy kde-git]$ git clone --no-checkout --filter=blob:none "[email protected]:/home/aspotashev/kde-git/krita/.git" krita Cloning into 'krita'... remote: Enumerating objects: 321084, done. remote: Counting objects: 100% (321084/321084), done. remote: Compressing objects: 100% (64401/64401), done. remote: Total 321084 (delta 257379), reused 319306 (delta 255807) Receiving objects: 100% (321084/321084), 36.15 MiB | 593.00 KiB/s, done. Resolving deltas: 100% (257379/257379), done. [aspotashev@candy kde-git]$ cd krita/ [aspotashev@candy krita]$ git checkout master -- cmake/ remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 445 bytes | 445.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 294 bytes | 294.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1020 bytes | 1020.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 730 bytes | 730.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 3.42 KiB | 3.42 MiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 362 bytes | 362.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 358 bytes | 358.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 465 bytes | 465.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 416 bytes | 416.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 527 bytes | 527.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 183 bytes | 183.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 534 bytes | 534.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 622 bytes | 622.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 584 bytes | 584.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 403 bytes | 403.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 400 bytes | 400.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 503 bytes | 503.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 119 bytes | 119.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 221 bytes | 221.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 595 bytes | 595.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 753 bytes | 753.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1.70 KiB | 1.70 MiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1.01 KiB | 1.01 MiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 683 bytes | 683.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 937 bytes | 937.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 568 bytes | 568.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 966 bytes | 483.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1.81 KiB | 1.81 MiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 989 bytes | 989.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 806 bytes | 806.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 926 bytes | 926.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 444 bytes | 444.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1000 bytes | 1000.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 594 bytes | 297.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 959 bytes | 479.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 658 bytes | 329.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1.06 KiB | 541.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 325 bytes | 325.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 680 bytes | 340.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1.81 KiB | 924.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 732 bytes | 366.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1.01 KiB | 516.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1.66 KiB | 566.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 886 bytes | 177.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1.24 KiB | 423.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 149 bytes | 74.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 1 (delta 0) Receiving objects: 100% (1/1), 1.20 KiB | 410.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 1.86 KiB | 950.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 166 bytes | 83.00 KiB/s, done. remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1/1), 177 bytes | 177.00 KiB/s, done. [aspotashev@candy krita]$ ls -a . .. .git cmake [aspotashev@candy krita]$ du -sh .git cmake 46M .git 248K cmake [aspotashev@candy krita]$
