Musím skontrolovať, či sa vetva, o ktorú mám záujem, zlúčila s inou vetvou.
s gitpython
, Môžem použiť jeho príkazový objekt git, ako napríklad:
import git
g = git.Git("/path/to/git/repo")
g.branch("--no-merged", "master")
Out[273]: u"* newn test"
Takže vydáva správne vetvy, ale formát, ktorý vracia, nie je celkom dobrý. Teraz musím analyzovať reťazec a nájsť vetvu, ktorá ma zaujíma.
Premýšľal som, či to isté možno dosiahnuť pomocou:
repo = git.Repo("/path/to/git/repo")
# Check branches using `repo` object as starting point?
s repo
Existuje veľa užitočných metód, ktoré dokážu načítať užitočné informácie, ktoré sú už analyzované na objekty, ale nenašiel som, ako to isté urobiť. repo
objekt (ak je to vôbec možné).
odpovede:
0 pre odpoveď č. 1Myslím, že zlúčená vetva má 0 zaviazaných pred ostatnými (master
).
from git import Repo
branch_name = "is-this-branch-merged"
repo = Repo(".")
commits_ahead = repo.iter_commits("origin/master..%s" % branch_name)
commits_ahead_count = sum(1 for c in commits_ahead)
is_merged = (commits_ahead_count == 0)
Rád by som vedel o lepšej verzii, v ktorej ľahko nájdete všetky už zlúčené vetvy.