Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Re: [HS] git-svn et git-filter-repo

1 réponse
Avatar
Arnaud Vandyck
--Apple-Mail-7DF00513-2D3C-40D6-9FEC-A084095C9C63
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable

ͯ»¿
ͯ»¿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 <ml@lairdutemps.org> 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

--Apple-Mail-7DF00513-2D3C-40D6-9FEC-A084095C9C63
Content-Type: text/html;
charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div dir="ltr">ͯ»¿<meta http-equiv="content-type" content="text/html; charset=utf-8"><div dir="ltr">ͯ»¿<meta http-equiv="content-type" content="text/html; charset=utf-8">Peut-̓ªtre en filtrant le svn comme dans ce projet?<div><br></div><div><a href="https://stackoverflow.com/questions/15535334/filter-a-lot-of-sensitive-code-from-an-svn-repository">https://stackoverflow.com/questions/15535334/filter-a-lot-of-sensitive-code-from-an-svn-repository</a><br><br>Les gros fichiers obsoletes seraient exclus du d̓©p̓´t.</div><div><br></div><div>Bien ̓  vous,<br><br><div dir="ltr">--&nbsp;<span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.298);">Arnaud sur son iPhone</span><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></span></div></div><div dir="ltr"><br><blockquote type="cite">Le 9 juil. 2021 ̓  14:58, Daniel Caillibaud &lt;ml@lairdutemps.org&gt; a ̓©crit&nbsp;:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr">ͯ»¿<span>Salut,</span><br><span></span><br><span>Une question git (qui n'a donc rien ̓  voir avec debian).</span><br><span></span><br><span>- J'ai un d̓©p̓´t svn d'un tr̓¨s vieux projet, encore actif, avec des utilisateurs habitu̓©s ̓  svn.</span><br><span></span><br><span>- J'aimerais permettre ̓  ceux qui utilisent git couramment de pouvoir le faire sur ce projet</span><br><span> &nbsp;=&gt; git-svn [1] permet de faire ̓§a</span><br><span></span><br><span>- Le d̓©p̓´t svn est ̓©norme, avec des ̓©l̓©ments de doc obsol̓¨tes dans l'historique (plein de zip</span><br><span> &nbsp;et de vid̓©os ont ̓©t̓© mis dans le d̓©p̓´t, vir̓©s depuis), trop gros pour l'envoyer sur un gitlab</span><br><span> &nbsp;=&gt; git-filter-repo [2] est parfait pour ̓§a (conseill̓© dans la doc officielle [3] ̓  la place de</span><br><span> &nbsp;`git filter-branch Í¢€¦`)</span><br><span></span><br><span>Mon pb est qu'apr̓¨s avoir nettoy̓© l'historique, je peux plus lancer de `git svn fetch` pour</span><br><span>r̓©cup̓©rer les nouveaux commits svn, ̓§a plante :</span><br><span></span><br><span>error: invalid object xxx yyyyyy for 'fichier/vir̓©'</span><br><span>fatal: git-write-tree: error building trees </span><br><span>write-tree: command returned error: 128</span><br><span></span><br><span>J'ai alors pens̓© ̓  un truc en deux temps</span><br><span>- un gros d̓©p̓´t xxxGitSvn qui fetch le svn, en local chez moi, avec tout l'historique</span><br><span>- un d̓©p̓´t git xxxGit, initi̓© comme clone de xxxGitSvn, nettoy̓© avec git-filter-repo puis</span><br><span> &nbsp;utilis̓© comme relai, pull de xxxGitSvn et push vers mon gitlab</span><br><span>(pas trop grave si ̓§a emp̓ªche d'envoyer des modifs faites sous git vers svn, l'usage principal</span><br><span>est de pouvoir se balader dans l'historique et regarder des diff, un truc th̓©oriquement</span><br><span>possible avec svn mais en pratique compl̓¨tement infernal sur un projet aussi gros avec 10 ans</span><br><span>d'historique et 15k r̓©visions).</span><br><span></span><br><span>Mais ̓§a marche pas, au premier pull</span><br><span> &nbsp;xxxGit &lt;= xxxGitSvn</span><br><span>il r̓©cup̓¨re dans son historique tout ce que j'avais vir̓©Í¢€¦</span><br><span></span><br><span>Je reconnais que c'est un cas un peu tordu, mais est-ce qu'il y a un moyen de faire ̓§a ?</span><br><span>(ne pas r̓©cup̓©rer tout l'historique qu'on a pas localement lors d'un pull je suppose que ̓§a</span><br><span>revient ̓  dire ̓  git de consid̓©rer que le commit xx local est le m̓ªme que le commit yy de</span><br><span>tel remote) ?</span><br><span></span><br><span>Si y'a pas de solution, j'irai filtrer l'historique ̓  la source, avec svnadmin dump /</span><br><span>svndumpfilter exclude / svnadmin create / svnadmin load, mais je pr̓©f̓©rais garder le d̓©p̓´t svn</span><br><span>intact.</span><br><span></span><br><span></span><br><span>[1] https://git-scm.com/docs/git-svn</span><br><span>[2] https://github.com/newren/git-filter-repo (qui demande git Í¢‰¥ 2.22.0 =&gt; paquet git de</span><br><span> &nbsp;&nbsp;&nbsp;unstable)</span><br><span>[3] https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History ou</span><br><span> &nbsp;&nbsp;&nbsp;https://git-scm.com/book/fr/v2/Utilitaires-Git-R%C3%A9%C3%A9crire-l%E2%80%99historique</span><br><span></span><br><span>-- </span><br><span>Daniel</span><br><span></span><br><span>Dans le pass̓©, il y avait plus de futur que maintenant ?</span><br><span>Philippe Geluck, Le chat</span><br><span></span><br></div></blockquote></div></div></div></body></html>
--Apple-Mail-7DF00513-2D3C-40D6-9FEC-A084095C9C63--

1 réponse

Avatar
Daniel Caillibaud
Le 09/07/21 Í  20:45, Arnaud Vandyck a écrit :
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.

Oui, c'est ce que j'envisageais en dernier recours :
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.


avec ce genre de méthode
https://blog.christosoft.de/2012/02/subversion-svn-permanently-remove-files-from-repository-history/
Je cherchais une solution qui ne touche pas Í  l'historique du svn, mais y'en a peut-être pas…
--
Daniel
Pour atteindre le bonheur il y a deux règles :
1. Contentez vous de ce que vous avez.
2. Essayez d'en avoir un maximum.