Vraag Hg-vestigingen sluiten


Tijdens gebruik hg branch FeatureBranchName en het publiceren ervan naar een centrale repo die gedeeld wordt door ontwikkelaars, is er een manier om uiteindelijk de FeatureBranchName wanneer de ontwikkeling ervan officieel is samengevoegd met de standaardbranche?

Het zou ook nuttig zijn als de FeatureBranchName was niet zichtbaar tijdens het uitvoeren van een hg branches opdracht.


88
2017-07-12 11:19


oorsprong


antwoorden:


hg commit --close-branch

zou voldoende moeten zijn om een ​​filiaal in de buurt te markeren. (zien hg commit)

--close-branch

markeer een tak als gesloten en verberg hem van de lijst met filialen.

Zie ook deze draad:

Mijn verwachting is dat ik een filiaal sluit omdat deze lijn van ontwikkeling een doodlopende weg is ingeslagen en ik er niet meer last van wil hebben.
  Daarom, als een tak gesloten is, zou ik het niet moeten zien (in takken, koppen, logboek, bijvoorbeeld) tenzij ik expliciet vraag om gesloten takken te zien.

Ik moet er rekening mee houden dat ik verwacht dat een gesloten branch in de repository blijft;   het kan in de toekomst nuttig zijn, en de commit --close-branch bericht   moet op zijn minst verklaren waarom het filiaal gesloten was.
Snoeien takken is een ander ding helemaal.


Let op: dat "sluit filiaal" bedrijf is er een aspect dat in Git als vermist wordt gezien in vergelijking met Mercurial:

Takken in git worden, zo wordt ons verteld, vluchtige dingen die moeten worden gebruikt en weggegooid, en voor zover ik weet heeft git geen manier om aan uw collega's aan te geven dat u klaar bent met een filiaal;
  de enige manier om dit te doen is door het te verwijderen, of te hopen dat ze de uiteindelijke merge commit zien en begrijpen dat de branch gesloten is voor verdere ontwikkeling.

[In Mercurial] Wanneer u klaar bent met een filiaal, kunt u het echter niet uit de repository verwijderen; in plaats daarvan geeft u een commit uit die de branch sluit, en Mercurial merkt op dat de branch gesloten is. Het blijft een permanent onderdeel van je repository-geschiedenis.


131
2017-07-12 11:23



Ik schreef een eenvoudig script dat de tak close voltooit, commando's gevonden bij PruningDeadBranches.

## Script ##

#!/bin/bash
#script to close not required branch in mercurial

hg up -C $1
if [ $? -eq 0 ]; then
    echo "$1 is up"
else
    echo "branch not found, please recheck your argument"
    exit 1
fi 
echo "$1 is up"
hg commit --close-branch -m 'this branch no longer required' 
echo "$1 is closed"
hg up -C default
echo "default is up" 

Hoe

Ga naar de lokale kopie van de repository en voer dit script uit door een argument te geven. Bijvoorbeeld:

$./the_script_above.sh bad_branch_name_to_close

Wat doet het

Dit doet het volgende:

  1. Als de vertakking bestaat, wordt deze bijgewerkt naar de gegeven vertakking of er bestaat anders mee een foutmelding
  2. Het sluit de tak.
  3. Updates voor de standaardtak.
  4. Stopt.

3
2017-08-18 05:19