Closed ArsenShnurkov closed 9 years ago
The master branch is tracking master on nuget.codeplex.com. Since the last time I updated the master branch on my fork the NuGet team have added only one commit to master on nuget.codeplex.com.
Why not to make some "mono_master" branch then?
To merge all other branches into one.
I could do but I would never use that branch. Currently everything is on feature branches.
The plan for the repository was to be a mirror of the official NuGet repository with features branches so you can see the patches that have been applied to a particular release of NuGet.
But I am unable to merge other branches (2.8.3-monodevelop and 2.8.5-monodevelop in particular) into master branch, because feature branches should be rebased before merging (and they are not).
For example, I can't push a simple patch for master branch into your branch without conflicts, because your branch is not rebased - see https://github.com/mrward/nuget/pull/7
I understood, that branches should not be rebased (for the purpose of creating patches), because they are derived from the commits/tags in master, where versions was fixed/released (and not from the latest point of master).
So, I don't understood, how to get latest sources with all patches (this is what master branch should do). This happens, because new features are not merged into master (or into another single branch).
I can get 2.8.5-monodevelop branch (or create my new feature branch from it) and make my commits for 2.8.5-monodevelop but then I don't understand how I should gather patches from other branches (like 2.8.3 registry check and others, and new changes from master branch).
I would never use that branch
So, what one should do? 1) take master 2) make his own new branch from master 3) duplicate each your branch, rebase, merge into the new branch 4) merge the final result into master (what if whey don't accept these changes?) 5) and only after that make his new feature branch 6) push new feature into master (and into your branches) right ?
This questions are risen because I don't see, that your oldest version (2.8.5-monodevelop) merges all changes from previous versions (no links in github graph). May be earlier changes are merged into master earlier, but I don't know about that.
If you haven't managed to push changes into upstream before 2.8.5 release, then shouldn't you accumulate them in latest branch like this - https://github.com/mrward/nuget/pull/8 ?
I can imagine that you just create 2 patches and apply them during the build, but you force all maintainers to repeat doing the same.
Unfortunately this is how the official NuGet source looks like. The official NuGet master branch has not been updated. I was looking at this yesterday and one fix that went into master never made it into any of the 2.8 branches.
Basically the whole mrward/nuget repo is supposed to be a copy of the official NuGet repository. Then I create a branch off the current NuGet branch (e.g. 2.8.5) and name it after monodevelop and then apply some patches which are cherry-picked.
This basic process is also the same process that is done on mono/nuget. It is basically a mirror of the official NuGet source code but separate release branches are created for mono that have mono specific patches on it.
Not sure exactly what the problem is. If you want to make a change to 2.8.5-monodevelop branch then fork the repo and make a change to the 2.8.5-monodevelop branch. To see the changes you can compare the 2.8.5 branch with the 2.8.5-monodevelop branch.
There are many branches which are not merged into master. Black line for master branch is replaced by something another. It not looks like
2010-01-05, Vincent Driessen - http://nvie.com/posts/a-successful-git-branching-model/ 2011/08/31, Scott Chacon - http://scottchacon.com/2011/08/31/github-flow.html