2011-12-09 6 views
5

Estoy tratando de dividir un ikiwiki en dos wikis.Dividir un ikiwiki

Supongamos que tengo una ikiwiki llamada myiki (comparar this question from ikiwiki.info), que contiene las páginas

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

ahora quieren tener dos wikis llamados myikiA y myikiB, tal que:

  • myikiA contiene pageA1,pageA2,...
    La historia de myikiA debe contener todo el historial de esas páginas, pero no hay historial de pageB1,pageB2,...

y:

  • myikiB contiene pageB1, pageB2, ...
    La historia de myikiB debe contener toda la historia de esas páginas, pero sin antecedentes de pageA1,pageA2,...

En un primer paso hice una copia de mi scrdir y traté de eliminar una página llamada foo así (tenga en cuenta que en el scrdir hay archivos calle d foo.mdwn y directorios foo también).
para hacerlo, lo hice este 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 {} \; 

alguna idea de lo que está mal con ella?

¿Hay alguna manera de dar una lista de páginas y dividir la wiki como se describe arriba?

+0

¿Sería http://stackoverflow.com/questions/5677766/filter-branch-to-remove-extra-directory ayuda o aplicar en su caso? – VonC

+0

Hm. Gracias, sin embargo, no veo, cómo aplicarlo a esta situación (soy un novato git). git-ls-files parece no funcionar recusivamente !? – student

+0

Sí, solo estaba vagando si el bit '' git update-index --index-info' 'podría mejorar la situación. – VonC

Respuesta

1

Cuando find encuentra foo/, llama al rm -rf y luego intenta ingresar para encontrar más archivos. Puede hacer que find quite el directorio y luego ignorarlo usando -prune.

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

+0

Gracias, ahora obtengo: 'Reescriba 9ed693bf5ed887beac89b482ba8dcf971429838a (97/1492) find:' ./index/foo.mdwn ': Ningún archivo o directorio filtro de árbol falló: git update-index --index-info && find. -name foo \ * -exec rm -r -f {} \; -prune' – student

+0

Hmm, puede salir con 'find. -name foo.mdwn -delete -o -name foo -type d -exec rm -rf {} \; -prune'?Algo a lo largo de estas líneas. También vale la pena señalar que el "foo *" que está utilizando puede ampliarse por el shell, por lo que puede necesitar tirarlo entre comillas. –