GeirGrusom Skrevet 5. juli 2013 Del Skrevet 5. juli 2013 (endret) Jeg har en hel rekke prosjekter som jeg har planer om å trekke ut av et annet for å gjøre de til dependencies istedet for å ligge direkte under en massiv monlittisk løsning. Jeg har allerede trukket ut et prosjekt (git filter-branch --subdirectory-filter foo/hihi), men når jeg forsøker de andre så sitter jeg igjen med en tom mappe. git clone https://[email protected]/Foo.git Hihi cd Hihi git filter-branch --subdirectory-filter ./Foo/Hihi "--" --all git remote rm origin Den nøster opp 38 commits, og det tar et par sekunder. En ls viser derimot at den har fjernet alt. Foo/Hihi er i utgangspunktet ikke tom. Kanskje jeg har missforstått filter-branch? Endret 5. juli 2013 av GeirGrusom Lenke til kommentar
Lycantrophe Skrevet 5. juli 2013 Del Skrevet 5. juli 2013 Jeg har ingen løsning rent umiddelbart (aldri prøvd dette), men jeg er interessert i løsningen. Lenke til kommentar
GeirGrusom Skrevet 5. juli 2013 Forfatter Del Skrevet 5. juli 2013 Det som kan ansees som snodig er at jeg har trukket ut et prosjekt som var felles for alle andre i løsningen uten store problemer. Derimot når jeg forsøker på de andre prosjektene så setter skjegget seg i postkassa. Lenke til kommentar
Wedvich Skrevet 9. juli 2013 Del Skrevet 9. juli 2013 I utgangspunktet tar du bare med navnet på undermappen i subdirectory-filter, ikke hele pathen. Kan være at den ser etter innhold i (mappen du klonet inn i)/Foo/Hihi i stedet for (mappen du klonet inn i)/Hihi når du kjører det sånn. Hvis den mappen ikke finnes, vil du sitte igjen med en tom mappe når det er ferdig, siden den samtidig fjerner commits som ikke har påvirket subdirectoryet du spør etter (altså samtlige, hvis det ikke finnes). Om du prøver dette: git filter-branch --subdirectory-filter Hihi -- --all // i stedet for git filter-branch --subdirectory-filter ./Foo/Hihi -- --all Ser det annerledes ut da? Eller har jeg misforstått mappestrukturen din? Lenke til kommentar
GeirGrusom Skrevet 9. juli 2013 Forfatter Del Skrevet 9. juli 2013 I utgangspunktet tar du bare med navnet på undermappen i subdirectory-filter, ikke hele pathen. Kan være at den ser etter innhold i (mappen du klonet inn i)/Foo/Hihi i stedet for (mappen du klonet inn i)/Hihi når du kjører det sånn. Hvis den mappen ikke finnes, vil du sitte igjen med en tom mappe når det er ferdig, siden den samtidig fjerner commits som ikke har påvirket subdirectoryet du spør etter (altså samtlige, hvis det ikke finnes). Om du prøver dette: git filter-branch --subdirectory-filter Hihi -- --all // i stedet for git filter-branch --subdirectory-filter ./Foo/Hihi -- --all Ser det annerledes ut da? Eller har jeg misforstått mappestrukturen din? Mer korrekt-ish ser det slik ut: ~/Projects/ProsjektetsNavn/app/Presentation/RoleEditor Jeg skal ha ut fra ProsjektetsNavn mappen app/Presentation/RoleEditor Så jeg skriver slik: git filter-branch --subdirectory-filter app/Presentation/RoleEditor -- --all Da forventer jeg at mappen ProsjektetsNavn skal inneholde alt som ligger i RoleEditor, men istedet er mappen tom. Lenke til kommentar
Wedvich Skrevet 9. juli 2013 Del Skrevet 9. juli 2013 Høres merkelig ut, det burde fungere sånn som du gjør det hvis den app/Presentation/RoleEditor-mappen ikke er tom. Du kan jo eventuelt prøve med subtree for å splitte det inn i et eget repository? git subtree split -P app/Presentation/RoleEditor -b roleeditor cd .. mkdir RoleEditor cd RoleEditor git init git fetch ../ProsjektetsNavn roleeditor git checkout -b master FETCH_HEAD Og så rydde opp i det originale repo'et og legge til remotes etc. i det nye. Lenke til kommentar
GeirGrusom Skrevet 24. oktober 2013 Forfatter Del Skrevet 24. oktober 2013 (endret) Dette funker i 1.8. Path må være helt korrekt. Endret 24. oktober 2013 av GeirGrusom Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå