Peut-être en filtrant le svn comme dans ce projet? https://stackoverflow.com/questions/15535334/filter-a-lot-of-sensitive-code-from-an-svn-repository
Les gros fichiers obsoletes seraient exclus du dépôt. Bien à vous, -- Arnaud sur son iPhone > Le 9 juil. 2021 à 14:58, Daniel Caillibaud <[email protected]> a écrit : > Salut, > > Une question git (qui n'a donc rien à voir avec debian). > > - J'ai un dépôt svn d'un très vieux projet, encore actif, avec des > utilisateurs habitués à svn. > > - J'aimerais permettre à ceux qui utilisent git couramment de pouvoir le > faire sur ce projet > => git-svn [1] permet de faire ça > > - Le dépôt svn est énorme, avec des éléments de doc obsolètes dans > l'historique (plein de zip > et de vidéos ont été mis dans le dépôt, virés depuis), trop gros pour > l'envoyer sur un gitlab > => git-filter-repo [2] est parfait pour ça (conseillé dans la doc officielle > [3] à la place de > `git filter-branch …`) > > Mon pb est qu'après avoir nettoyé l'historique, je peux plus lancer de `git > svn fetch` pour > récupérer les nouveaux commits svn, ça plante : > > error: invalid object xxx yyyyyy for 'fichier/viré' > fatal: git-write-tree: error building trees > write-tree: command returned error: 128 > > J'ai alors pensé à un truc en deux temps > - un gros dépôt xxxGitSvn qui fetch le svn, en local chez moi, avec tout > l'historique > - un dépôt git xxxGit, initié comme clone de xxxGitSvn, nettoyé avec > git-filter-repo puis > utilisé comme relai, pull de xxxGitSvn et push vers mon gitlab > (pas trop grave si ça empêche d'envoyer des modifs faites sous git vers svn, > l'usage principal > est de pouvoir se balader dans l'historique et regarder des diff, un truc > théoriquement > possible avec svn mais en pratique complètement infernal sur un projet aussi > gros avec 10 ans > d'historique et 15k révisions). > > Mais ça marche pas, au premier pull > xxxGit <= xxxGitSvn > il récupère dans son historique tout ce que j'avais viré… > > Je reconnais que c'est un cas un peu tordu, mais est-ce qu'il y a un moyen de > faire ça ? > (ne pas récupérer tout l'historique qu'on a pas localement lors d'un pull je > suppose que ça > revient à dire à git de considérer que le commit xx local est le même que le > commit yy de > tel remote) ? > > Si y'a pas de solution, j'irai filtrer l'historique à la source, avec > svnadmin dump / > svndumpfilter exclude / svnadmin create / svnadmin load, mais je préférais > garder le dépôt svn > intact. > > > [1] https://git-scm.com/docs/git-svn > [2] https://github.com/newren/git-filter-repo (qui demande git ≥ 2.22.0 => > paquet git de > unstable) > [3] https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History ou > > https://git-scm.com/book/fr/v2/Utilitaires-Git-R%C3%A9%C3%A9crire-l%E2%80%99historique > > -- > Daniel > > Dans le passé, il y avait plus de futur que maintenant ? > Philippe Geluck, Le chat

