Feature/add republish all support

code in this commit may be not suitable in the long run, but it works for the current time. 

And I think op/do-publication should be refactored to support flexible publishing.