git, svn, mercurial

Git bundle a mers, dar operatia de unbundle este un pic ... ciudata. Nu asa ma asteptam sa mearga, desi probabil face sens din perspectiva altora.

Alta:
S-a facut un patch/commit in linux kernel master branch care repara un bug oarecare, apoi s-a facut si un backport pentru v5.15. Backport-ul se pare ca nu rezolva problema de unul singur. Mai lipseste ceva.
Cum fac un git bisect pe master branch, dar aplicand de fiecare data patch-ul?
 
Faci bisect normal și aplici patch-ul manual cu "git cherry-pick --no-commit". Dar de ce nu folosești un kernel LTS?
 
Am clonat de pe github linux-ul din doua surse diferite: ala mainline si ala de la rockchip. Gasesc diferente majore intre anumite fisiere importante pentru ce ma intereseaza pe mine (vreo 5 fisiere).
Vreau sa:
- gasesc punctul comun intre cele doua linux-uri, daca exista, sau macar un punct unde diferentele sunt minime
- import commit-urile de la rockchip care afecteaza fisierele interesante, incepand de la punctul comun, sub forma unui branch in linux mainline - automat, ca manual m-as descurca.
Cum fac?
Multumesc.
 
Probabil ce vrei la prima e https://git-scm.com/docs/git-merge-base, dacă rockchip e fork din linux ar trebui să poți să-l pui ca upstream și să faci fetch pe el (ca să meargă merge base).

Pentru a doua ai nevoie de ceva scripting, în principal git log cu follow pe fișierele "interesante" și cherry pick. Vezi și pretty la git log ca să scoți lista de commits per fișier, pe care le bagi în cherry pick pe urmă. Dar dacă vrei să faci același lucru pe mai multe fișiere o să fie un pic tricky la ordonare (follow merge cu un singur fișier). Of course, cherry pick poate să nu includă chestii care sunt utile din alte fișiere modificate (care nu apar în lista ta), că nu asta e treaba lui.
 
N-a mers. Sunt zeci sau sute de commit-uri, unele dintre ele duplicate in ambele parti. Au facut cherry-pick din mainline in loc de rebase. :(
 
Back
Top