2011-12-09 51 views
5

我想分裂成兩個維基的ikiwiki。拆分ikiwiki

假設我有一個ikiwiki稱爲myiki(比較this question from ikiwiki.info),其中包含

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

現在我想有兩個稱爲wiki myikiAmyikiB的頁面,使得:

  • myikiA包含pageA1,pageA2,...
    myikiA的歷史應該包含這些頁面的整個歷史,但沒有的歷史

和:

  • myikiB包含pageB1,pageB2,...
    myikiB歷史應該包含這些頁面的整個歷史,但沒有pageA1,pageA2,...

歷史第一步我製作了我的scrdir的副本,並嘗試刪除一個名爲foo的頁面(請注意,在scrdir中有文件calle d foo.mdwn和目錄foo)。
要做到這一點,我做這個命令:

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 {} \; 

任何想法有什麼錯呢?

有沒有辦法按照上面的描述給出頁面列表並拆分wiki?

+0

會http://stackoverflow.com/questions/5677766/filter-branch-to-remove-extra-directory幫助或在您的案件,不適用? – VonC

+0

嗯。謝謝,但是我沒有看到,如何將其應用於這種情況(我是一個git新手)。 git-ls-files似乎不能令人信服地工作! – student

+0

是的,我只是在徘徊,如果'git update-index --index-info'位可能改善情況。 – VonC

回答

1

find找到foo/時,它會調用rm -rf,然後嘗試輸入它以查找更多文件。您可以使查找刪除該目錄,然後使用-prune忽略它。

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

+0

謝謝,現在我得到:'重寫9ed693bf5ed887beac89b482ba8dcf971429838a(97/1492)find:'./index/foo.mdwn':沒有這樣的文件或目錄 tree filter failed:git update-index --index-info && find。 -name foo \ * -exec rm -r -f {} \; -prune' – student

+0

嗯,你可能會用'find找到。 -name foo.mdwn -delete -o -name foo -type d -exec rm -rf {} \; -prune'?沿着這些線路的東西。另外值得指出的是,您使用的'foo *'可能會被shell擴展,所以您可能需要用引號將其折騰。 –