shall we rerun `createrepo` after copying new files in repository

You need --update option with createrepo

createrepo --update: Sometimes you have a lot of packages in your repsitory and regenerating the meta data for each package when only a few packages have been added or changed is just too time consuming. This is where --update comes in handy. You run createrepo just like you did before but you pass the --update flag to it. Like this:

  createrepo --update </path/to/repo>  

Now, createrepo will only update the items which have been changed, been added or been removed since the last time the meta data was generated.

Also mentioned in man createrepo

(Reference)


Yes. After any modification in repo directory, you should run createrepo on it. Of course, clients should run yum clean all before changes are seen.