Another drawback is that we might be confused since the history will contain both Emacs trunk commit messages and ELPA messages. However I've figure out a solution: to add a marker or notice message like "(Merged from Emacs trunk)" at each of the of the crisp.el commit message using "git filter-branch --msg-filter". I've tried that successfully in my local repo. 2014-07-09 14:47 GMT+08:00 Luke Lee : > >> But it would be good to preserve the VCS history of the file, if > possible. > > > > I don't think that's practical (maybe some VCS will support this well at > > some point, but currently I think it'd be too much hassle for too little > > benefit). > > Since ELPA is VCS by git and we have an Emacs git clone, it's not > difficult. I tried that in my local repo and successfully merged the full > history of crisp.el from Emacs to ELPA. The only inconvenience is that > we'll > need to apply "--follow" argument when doing "git log crisp.el " to be able > to see the full history of crisp.el. Otherwise "git log crisp.el" only > shows > the one that I move it into "packages/crisp-mode". > > Basically I followed the steps described in StackOverflow, with some extra > steps I successfully merging the full history of crisp.el *ONLY*. The > original > flow is discussed here: "http://stackoverflow.com/questions/1365541/ > > how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history" > > If it's okay with all of you, I'll commit the full history of crisp.el > into ELPA, and > also keep it in Emacs obsolete. > -- Best regards, Luke Lee