ENT-14408, CFE-4700: Added option to retain git history when using cfbs convert & Replaced cp/rsync with shutil.copy - #332
Conversation
8f917ce to
fcd6dfe
Compare
olehermanse
left a comment
There was a problem hiding this comment.
Looks like you're moving the existing repo into a .old directory? And then adding that to gitignore? That's not what we mean by retain, we want the new project (after conversion) to have (retain) the git history of what happened before conversion.
Essentially, we want cfbs convert to do something equivalent to what I've done in a shell here;
$ cd my-masterfiles
$ ls -a
.git/ promises.cf update.cf [...]
$ mkdir ./my-masterfiles # We could prompt about what the name of the subdirectory should be
$ mv promises.cf update.cf [...] ./my-masterfiles
$ git add ./my-masterfiles
$ git commit -m "Moved CFEngine policy related files to subdirectory to convert this repository into a CFEngine Build project"
$ cfbs convert # (init + add +++)
The existing code (in cfbs convert / init) might not work correctly when .git already exists, in that case we need to fix that.
Yeah, that makes much more sense now that I think about it. Originally I thought it more as a 'backup' inside the the build-project, but I see what you mean. |
488603b to
a8b63ac
Compare
…nputs Copied the copytree-function from cf-remote (3.5 compliant version of copytree w/ dirs_exist_ok) Ticket: ENT-14408 Changelog: Title Signed-off-by: Simon Halvorsen <simon.halvorsen@northern.tech>
ffdc25d to
d65c956
Compare
Additionally did a full refactor of the convert_command (~400loc) into smaller functions for each step in the conversion process Ticket: CFE-4700 Changelog: Title Signed-off-by: Simon Halvorsen <simon.halvorsen@northern.tech>
d65c956 to
fe93f0b
Compare
There was a problem hiding this comment.
LGTM 🚀 I kind of envisioned it to commit the step-by-step conversion on top of the original commit history when choosing to retain the git history. But I guess that could be another future 3rd option. (Edit: it appears that this is exactly what it does)
Thanks for refactoring this mess! I trust you have thoroughly tested this.
| self.backup_dir = ( | ||
| None | ||
| ) # type: Optional[str] # temp copy taken before messing with the project |
There was a problem hiding this comment.
Are these parenthesis a Black artifact?
No description provided.