Thread: Avisynth+
View Single Post
Old 17th September 2013, 17:39   #23  |  Link
ultim
AVS+ Dev
 
ultim's Avatar
 
Join Date: Aug 2013
Posts: 359
There are multiple solutions to this problem, off the top my head (without any particular order of preference):
  • IanB could check out my repository in Git without merging any patches, to look at the directory structure I have arrived at. If he doesn't like the placement of some files, he can make suggestions to me how I should rebase the code, and ofc I'd be willing to help.
  • IanB could at least look at the directory structure I have arrived at. Maybe he'll come to the same conclusion that the new structure really is better than the old one, in which case he can merge the code. Selectively picking commits after the commits that move files (which come at the very beginning) is not a problem any more in this case.
  • IanB could reorder the files as I did, then selectively pick commits (which will be trivial since he moved the files too), and then move the files back to their original places. He'll need to fix up some #include lines, but this is basically not much work either. But this method allows him to cherry-pick my commits without accepting the new directory structure.

So the only thing left to 'solve' is the manual work needed to actually move the files for the first commit. This can be done fully automatically, even if he is using CVS, because all my work is based on Ian's latest commit. All he needs to do is copy his CVS repo into a new folder, delete the sources without deleting the history, and then check out my Git repo into the same folder. Bang, no need for patches, no need to merge, and no need to move files manually. At this point he can start committing to his CVS if he decides he likes my work. And if he does not like it (after inspecting it), he still has his own repository untouched.

The problem is, is that IanB does not even want to take a look if I have created a logical directory structure. He simply decided that he will not take a look at my changes just because I have moved files, even though they do not hide my changes, because I kept moves from changes separate.

Note that looking at the first commit of mine looks much scarier than it really is. A lot less files have been moved than it looks like, because a large part of the additions come from not moves, but from adding the HTML sources of the FilterSDK to the repository. 99% rest of the moves are whole directory moves, like the 'src' folder being renamed to 'core', or moving the pfc and soundtouch directories into plugin folders. I think you can probably count the number of files I have moved within the core itself on one hand. The rest are as described.

Please, tell me honestly: If you compare the structure of the CVS repository and my Git, isn't the new folder structure much better? Because if it is, then this whole discussion is meaningless. And if it is not better, I have still described two methods in the bulletpoints above, how Ian can fully or partially reject my folder structure while still picking other commits from me.

Last edited by ultim; 17th September 2013 at 17:48.
ultim is offline