2011-12-09 18 views
5

sto cercando di dividere un ikiwiki in due wiki.Split un ikiwiki

Supponiamo che io sono un myiki ikiwiki chiamato (confrontare this question from ikiwiki.info), che contiene le pagine

pageA1,pageA2,...,pageB1,pageB2,... 

Ora voglio avere due wiki chiamato myikiA e myikiB, in modo tale che:

  • myikiA contiene pageA1,pageA2,...
    La cronologia di myikiA deve contenere l'intera cronologia di tali pagine, ma nessuna cronologia di pageB1,pageB2,...

e:

  • myikiB contiene pageB1, pageB2, ...
    La storia di myikiB dovrebbe contenere tutta la storia di quelle pagine, ma senza storia di pageA1,pageA2,...

In un primo passo ho fatto una copia del mio scrdir e ha cercato di rimuovere una pagina denominata foo come questo (si noti che nel scrdir ci sono file calle d foo.mdwn e directory foo).
Per farlo, ho fatto questo comando:

sudo git filter-branch --tree-filter 'find . -name foo* -exec rm -r -f {} \;' --prune-empty -f HEAD 

Rewrite 3cbc4646145e31cf7ce23d5e8397baaebab64c60 (179/1439)find: `./index/testdir/foo': No such file or directory 
tree filter failed: find . -name foo* -exec rm -r -f {} \; 

idea di cosa c'è che non va?

C'è un modo per fornire un elenco di pagine e suddividere il wiki come descritto sopra?

+0

Sarebbe http://stackoverflow.com/questions/5677766/filter-branch-to-remove-extra-directory aiuto o applicare nel vostro caso? – VonC

+0

Hm. Grazie, comunque non vedo, come applicarlo a questa situazione (sono un newbie git). git-ls-files sembra non funzionare in modo recusivo !? – student

+0

Sì, stavo solo vagando se il bit "git update-index --index-info'" potesse migliorare la situazione. – VonC

risposta

1

Quando find trova foo/, chiama rm -rf su di esso e quindi tenta di inserirlo per trovare più file. È possibile causare find per rimuovere la directory e quindi ignorarlo utilizzando -prune.

find . -name foo* -exec rm -r -f {} \; -prune

+0

Grazie, ora ho: '9ed693bf5ed887beac89b482ba8dcf971429838a Rewrite (97/1492) trovano:' ./index/foo.mdwn ': Nessun file o directory filtro albero fallito: git update-index --index-info && trovare. -name foo \ * -exec rm -r -f {} \; -prune' – student

+0

Hmm, potresti scappare con 'find. -name foo.mdwn -delete -o -name foo -type d -exec rm -rf {} \; -prune'?Qualcosa in questo senso. Vale anche la pena sottolineare che il "foo *" che stai utilizzando potrebbe essere espanso dalla shell, quindi potresti doverlo inserire tra virgolette. –