Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Effacer une branche orpheline et les commits associés
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  8 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Julien Catalano  
View profile   Translate to Translated (View Original)
 More options Jul 31 2011, 5:26 pm
From: Julien Catalano <julien.catal...@gmail.com>
Date: Sun, 31 Jul 2011 14:26:03 -0700 (PDT)
Local: Sun, Jul 31 2011 5:26 pm
Subject: Effacer une branche orpheline et les commits associés
Bonsoir,

Je suis nouveau dans ce groupe, j'utilise git depuis 2 ans au boulot,
et j'ai même assisté à une conf de @sdouche :-)

En clonant un dépôt SVN avec la commande git-svn, j'obtiens une
"branche orpheline" suite un un tag SVN mal placé. Le problème est que
cette "branche" contient beaucoup de contenu que git-svn n'a pas pu
relier au contenu de la branche master, il y a donc des tas de
dossiers/fichiers qui ne servent à rien.

Je voudrais effacer cette branche, avec tout ses commits ainsi que le
contenu stocké. (je remettrais les tags à la main)

Je sais effacer une branche (git branch -D toto) mais ca n'efface pas
les commits, ni le contenu stocké. Et je peux toujours retrouver ma
branche avec un git checkout -b toto 123abc

Un "git gc" et/ou "git prune" ne change rien, je peux toujours
retrouver mes petits.

Je pensais que si la "branche" n'était plus référencée, git l'effaçait
automatiquement. Mais comment le forcer à l'effacer et surtout comment
être sûr que tout à disparu?
Même en clonant mon dépôt local sans aucune référence à cette branche,
je peux toujours la retrouver avec le SHA1.

Quelqu'un a une idée sur comment me débarrasser de cette sacré
branche?

Merci,
Julien


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sebastien Douche  
View profile   Translate to Translated (View Original)
 More options Jul 31 2011, 6:06 pm
From: Sebastien Douche <sdou...@gmail.com>
Date: Mon, 1 Aug 2011 00:06:40 +0200
Local: Sun, Jul 31 2011 6:06 pm
Subject: Re: Effacer une branche orpheline et les commits associés
2011/7/31 Julien Catalano <julien.catal...@gmail.com>:

> Bonsoir,

Hello

> Je suis nouveau dans ce groupe, j'utilise git depuis 2 ans au boulot,
> et j'ai même assisté à une conf de @sdouche :-)

Whaou. Tu es donc un padawan niveau 3 !

> En clonant un dépôt SVN avec la commande git-svn, j'obtiens une
> "branche orpheline" suite un un tag SVN mal placé.

Je présume que ce que tu appelles branche "orpheline" est une branche
sans relation avec le reste des branches, sans ancêtre commun.

> Je sais effacer une branche (git branch -D toto) mais ca n'efface pas
> les commits, ni le contenu stocké.

Etrange. Une fois cette commande effectuée, tu vois toujours ta
branche ? Ok. Notes le SHA1 du commit HEAD (nommé sha1_toto ci après
de la branche toto, puis dis moi ce que tu donnes un :
$ git branch -D toto
$ git show-ref
$ git name-rev <sha1_toto>
$ git describe <sha1_toto>

Et en plus lances gitk :
$ gitk --all

Vois tu toujours tes commits ? Si oui, y'a t'il une référence
quelconque (tag, branche) sur ces commits ?

> Et je peux toujours retrouver ma
> branche avec un git checkout -b toto 123abc

Ah ça c'est normal :). Si tu remets une référence, tes commits réviennent.

> Je pensais que si la "branche" n'était plus référencée, git l'effaçait
> automatiquement.

Nop, elle est effacée quand le garbage collector passe, ce qui permet
de la récupérer en cas d'erreur.

> Même en clonant mon dépôt local sans aucune référence à cette branche,
> je peux toujours la retrouver avec le SHA1.

Toujours normal, tant que le gc ne passe pas.

> Quelqu'un a une idée sur comment me débarrasser de cette sacré
> branche?

Ma 1ere impression (qui peut être fausse) c'est que tu effaces bien ta
branche, mais tu crois encore l'avoir. Effacer une branche avec Git
signifie juste enlever la référence de type branche.

--
Sebastien Douche <sdou...@gmail.com>
Twitter : @sdouche


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julien Catalano  
View profile   Translate to Translated (View Original)
 More options Aug 1 2011, 6:26 pm
From: Julien Catalano <julien.catal...@gmail.com>
Date: Tue, 2 Aug 2011 00:26:46 +0200
Local: Mon, Aug 1 2011 6:26 pm
Subject: Re: Effacer une branche orpheline et les commits associés
Bonsoir,

2011/8/1 Sebastien Douche <sdou...@gmail.com>:

> 2011/7/31 Julien Catalano <julien.catal...@gmail.com>:
>> Je sais effacer une branche (git branch -D toto) mais ca n'efface pas
>> les commits, ni le contenu stocké.

> Etrange. Une fois cette commande effectuée, tu vois toujours ta
> branche ? Ok. Notes le SHA1 du commit HEAD (nommé sha1_toto ci après
> de la branche toto, puis dis moi ce que tu donnes un :
> $ git branch -D toto
> $ git show-ref
> $ git name-rev <sha1_toto>
> $ git describe <sha1_toto>

> Et en plus lances gitk :
> $ gitk --all

Effectivement, quand j'efface ma branche, je ne la *vois* plus dans
gitk, et les commandes précédentes ne me donnent rien de signifiant
(ma branche a bien disparue). Mais je sais qu'elle est encore là
puisque je peux la retrouver.

>> Et je peux toujours retrouver ma
>> branche avec un git checkout -b toto 123abc

> Ah ça c'est normal :). Si tu remets une référence, tes commits réviennent.

>> Je pensais que si la "branche" n'était plus référencée, git l'effaçait
>> automatiquement.

> Nop, elle est effacée quand le garbage collector passe, ce qui permet
> de la récupérer en cas d'erreur.

C'est bien là que se situe mon problème. J'efface ma branche, elle
disparaît dans gitk, je lance git gc, et même git gc --agressive, mais
rien n'y fait, elle revient toujours quand je fais un checkout avec
son SHA1.

Je voudrais faire disparaître cette branche de mon historique, mais
aussi et surtout le *contenu* qu'elle référence avec elle. Est-ce
possible? Est-ce que git-gc est la commande à utiliser?
Je peux mettre le dépôt à disposition si nécessaire (c'est du code GPL).

Merci pour votre aide.
Julien


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Camille Appert  
View profile   Translate to Translated (View Original)
 More options Aug 2 2011, 3:24 pm
From: Camille Appert <cami...@appert.me>
Date: Tue, 2 Aug 2011 21:24:12 +0200
Local: Tues, Aug 2 2011 3:24 pm
Subject: Re: Effacer une branche orpheline et les commits associés
Bonjour,

Le 2 août 2011 00:26, Julien Catalano <julien.catal...@gmail.com> a écrit :

> C'est bien là que se situe mon problème. J'efface ma branche, elle
> disparaît dans gitk, je lance git gc, et même git gc --agressive, mais
> rien n'y fait, elle revient toujours quand je fais un checkout avec
> son SHA1.

Essaie :
$ git gc --aggressive --prune=now

vu sur http://help.github.com/remove-sensitive-data/

man git gc :
--prune=<date>  Prune loose objects older than date (default is 2 weeks ago)

--
Camille Appert


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sebastien Douche  
View profile   Translate to Translated (View Original)
 More options Aug 3 2011, 7:19 pm
From: Sebastien Douche <sdou...@gmail.com>
Date: Thu, 4 Aug 2011 01:19:52 +0200
Local: Wed, Aug 3 2011 7:19 pm
Subject: Re: Effacer une branche orpheline et les commits associés
2011/8/2 Camille Appert <cami...@appert.me>:

> Essaie :
> $ git gc --aggressive --prune=now

> vu sur http://help.github.com/remove-sensitive-data/

> man git gc :
> --prune=<date>  Prune loose objects older than date (default is 2 weeks ago)

Merci à Camille qui m'a devancée (bon, je fais genre je savais, en
vrai je n'ai jamais matté la doc de git-gc). Et hop, ca va faire une
nouvelle astuce sur le blog !

--
Sebastien Douche <sdou...@gmail.com>
Twitter : @sdouche


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julien Catalano  
View profile   Translate to Translated (View Original)
 More options Aug 4 2011, 4:27 am
From: Julien Catalano <julien.catal...@gmail.com>
Date: Thu, 4 Aug 2011 10:27:16 +0200
Local: Thurs, Aug 4 2011 4:27 am
Subject: Re: Effacer une branche orpheline et les commits associés
2011/8/4 Sebastien Douche <sdou...@gmail.com>:

> 2011/8/2 Camille Appert <cami...@appert.me>:
>> Essaie :
>> $ git gc --aggressive --prune=now

>> vu sur http://help.github.com/remove-sensitive-data/

>> man git gc :
>> --prune=<date>  Prune loose objects older than date (default is 2 weeks ago)

> Merci à Camille qui m'a devancée (bon, je fais genre je savais, en
> vrai je n'ai jamais matté la doc de git-gc). Et hop, ca va faire une
> nouvelle astuce sur le blog !

Je viens d'essayer, mais toujours le même résultat: la branche
disparaît mais je peux toujours la retrouver en faisant un checkout
sur son SHA1.

Je vois vraiment pas quoi faire de plus. Je me demande si le fait que
ce soit une branche orpheline n'influence pas le comportement de git
gc.

Merci pour votre aide.
Julien


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Julien Catalano  
View profile  
 More options Aug 4 2011, 7:28 am
From: Julien Catalano <julien.catal...@gmail.com>
Date: Thu, 4 Aug 2011 13:28:32 +0200
Local: Thurs, Aug 4 2011 7:28 am
Subject: Re: Effacer une branche orpheline et les commits associés
2011/8/4 Julien Catalano <julien.catal...@gmail.com>:

> 2011/8/4 Sebastien Douche <sdou...@gmail.com>:
>> 2011/8/2 Camille Appert <cami...@appert.me>:
>>> Essaie :
>>> $ git gc --aggressive --prune=now

Pour voir si ça vient de moi ou de mon dépôt, je suis reparti de zéro:

julien@home:git$ cd gc
julien@home:gc$ git init
Initialized empty Git repository in /home/julien/test/git/gc/.git/
julien@home:gc (master #)$ git commit --allow-empty -m "Initial commit"
[master (root-commit) 037ccc7] Initial commit
julien@home:gc (master)$ echo "toto" > hello.txt
julien@home:gc (master %)$ git add hello.txt
julien@home:gc (master +)$ git commit -m "toto"
[master bb7c0b4] toto
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 hello.txt
julien@home:gc (master)$ git branch backup
julien@home:gc (master)$ git checkout backup
Switched to branch 'backup'
julien@home:gc (backup)$ ls
hello.txt
julien@home:gc (backup)$ echo "Secret a effacer" > chut.tss
julien@home:gc (backup %)$ git add chut.tss
julien@home:gc (backup +)$ git commit -m "Oups, ce commit doit être effacé"
[backup 6b8dc77] Oups, ce commit doit être effacé
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 chut.tss
julien@home:gc (backup)$ gitk --all
julien@home:gc (backup)$ git checkout master
Switched to branch 'master'
julien@home:gc (master)$ ls
hello.txt
julien@home:gc (master)$ echo "titi" >> hello.txt
julien@home:gc (master *)$ git commit -a -m "titi"
[master 6ed6e9d] titi
 1 files changed, 1 insertions(+), 0 deletions(-)
julien@home:gc (master)$ gitk --all
julien@home:gc (master)$ git branch -D backup
Deleted branch backup (was 6b8dc77).
julien@home:gc (master)$ git gc --aggressive --prune=now
Counting objects: 11, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (11/11), done.
Total 11 (delta 1), reused 0 (delta 0)
julien@home:gc (master)$ gitk --all
julien@home:gc (master)$ git checkout -b secret 6b8dc77
Switched to a new branch 'secret'
julien@home:gc (secret)$ gitk --all
julien@home:gc (secret)$ ls
chut.tss  hello.txt
julien@home:gc (secret)$ cat chut.tss
Secret a effacer
julien@home:gc (secret)$

On voit que, même après le git gc --aggressive --prune=now, si on
réutilise le SHA1 de la branche, celle-ci ré-apparaît.

Rien à voir avec une branche orpheline donc, mais git gc ne suffit pas
pour effacer du contenu.

D'autres idées?
A+
Julien


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Sebastien Douche  
View profile   Translate to Translated (View Original)
 More options Aug 4 2011, 8:08 am
From: Sebastien Douche <sdou...@gmail.com>
Date: Thu, 4 Aug 2011 14:08:29 +0200
Local: Thurs, Aug 4 2011 8:08 am
Subject: Re: Effacer une branche orpheline et les commits associés
2011/8/4 Julien Catalano <julien.catal...@gmail.com>:

>>>> Essaie :
>>>> $ git gc --aggressive --prune=now

Bon j'ai pris 10mn pour comprendre ce problème fort intéressant. En
fait, tes objets ne sont pas effacés car ils sont toujours référencés
par le reflog. Si tu fais ceci, ça doit être bon :
$ git reflog expire --expire=now --all
$ git gc --aggressive --prune=now

Quand tu effaces une branche tu effaces le reflog associé (logique),
mais pas le reflog HEAD. Donc les sha1 existent toujours dans le
système. C'est pour ça que la doc de git-gc parle autant de reflog.

Note : les repos partagés (--bare) n'ont pas de reflog, donc il suffit
d'effacer pour que les commits disparaissent.

Cool j'en sais un peu plus sur Git, cool !

--
Sebastien Douche <sdou...@gmail.com>
Twitter : @sdouche


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »