I too have no idea where this "history limit" comes into play. I work on and have repos spaning 50-100 developers working on dozens of thousands of branches over two dozen repos with almost 8 years of history. Some people rebase, but most people don't.
It is extremely easy to have a clean history due to the fact we enforce the "[COMPONENT] Description" commit message (and can use a git hook to make sure it looks this way). It is then trivial to write a script that only looks for those commits. Heck you can even auto-squash/rebase anything that doesn't match. That being said, that type of "dirty history" only happens if you heavily work with branches. That's not how reactos developers work -- we don't open PRs and separate branches for every checkin. These ALL sound like manufactured problems or poor/strange use of git. On Thu, Feb 16, 2017 at 12:02 AM David Quintana (gigaherz) < gigah...@gmail.com> wrote: > If git has an upper limit on history, it's the first time I hear about it, > and it would be an issue I was simply not aware of. So far as I was aware, > git just keeps a parent hash on each commit, and the GC just deletes > commits without any reference. In fact, we use Git at my current job, and > the history goes back many years, and it seems perfectly capable of > tracking it. And no, we don't rebase or squash, ever. We are not allowed to > do any operation that changes commit history. So it's quite a mess of merge > commits, but even then it's manageable. > > I disagree on needing a single person responsible for merges. The the PR > workflow we have at my current job is that the developer submits a PR for > review, and adds to the PR two other developers, who have to approve the > changes or request fixes. Once it's approved, the original developer can > click the merge button themselves. For external PRs done by contributors, > then one of the reviewers is the responsible for clicking the merge button. > > And even if you do choose to require a commit-master, with the way > github's merge button works, you can choose to have a merge commit, or to > squash & rebase implicitly, and the history ends up with one single commit > attributed to all the developers that were involved in the merge. As an > example, I have a hobby writing Minecraft mods, and they use Forge to work: > https://github.com/MinecraftForge/MinecraftForge/commits/1.11.x -- you'll > see many "<someone> commited with LexManos". That's because there's an > author, and a commiter, in the git info. > > I do agree, git history can get messy, and ugly, and hard to track -- if > you abuse merge commits. I, unlike Alex, am a fan of manual rebases, and > leaving a clean history before you submit the changes for review. But I > understand that constantly rewriting history means you end up with a > fabricated history at the end. So the policy choices should probably either > be no merges at all, or no rebasing at all. But that's where "git blame" > comes in. With a proper tool, you can see exactly who changed a file, and > when, and you can use it to track back the history of that file, or that > specific line of code. > > > > On 16 February 2017 at 03:45, Zachary Gorden <drakekaizer...@gmail.com> > wrote: > > I've used both git and svn in work environments. If all you do is git pull > and git push, you end up with lots of noise in the commit log with git > tracking every single merge because you don't rebase. Combined with the > fact that git has an upper limit on how much history it can track and the > solution literally being to purge history, I'm not exactly sure why all of > you are so enthused about it. Unless the team wants to adopt having a > single person being responsible for all commits going into the canonical > master repo to avoid all of the problems with how git tracks history, the > commit log is going to be next to useless for actual tracking of history. > If you don't care about the commit history, then sure, go ahead, but I > personally would like to be able to easily track changes back cleanly. We > get that basically for free with svn right now. With git, the usage > patterns that those of you pushing for git are promoting actively works > against keeping a clean history. > > On Wed, Feb 15, 2017 at 7:32 PM, Alex Ionescu <ion...@videotron.ca> wrote: > > Sure, I didn't count git add because you can do it with git commit -a. > git status/log are the same as the svn equivalents. just like git > diff/svn diff. I was mainly referring to regular workflow. > > In fact, I think outside of stash (which is an optional, but awesome, > feature) fetch and rebase (which I refuse to learn), all commands map > 1:1 with svn. That's why I don't get this whole "it takes way more > commands/steps in git". > > git commit -a -m "[BOOTLIB] Fix yet another bug]" > git push > > Done. > > Best regards, > Alex Ionescu > > > On Wed, Feb 15, 2017 at 3:48 PM, David Quintana (gigaherz) > <gigah...@gmail.com> wrote: > > My command set is a bit more extended: > > > > git clone -- similar to svn checkout into a new folder > > git checkout -- for changing the current branch > > git pull -- effectively the same as "svn update", xcept it gets the > entire > > change history, not just the latest commit data > > git push [--force] -- for sending changes into the repository > > git fetch -- downloads stuff but doesn't apply it to the checkout copy > > git merge -- can be used to merge the remote data (in which case it's > like > > svn update), or to merge from another branch > > git branch > > git add > > git commit > > git stash save/pop -- can be used to temporarily undo some changes, and > be > > able to recover them afterward > > git status, git log, ... -- for getting info about the state of the > > repository and the uncommited changes > > ... and more I that I use less often > > > > I do agree that it is a bit annoying that git has so much trouble pulling > > with local changes, and that is the one area where svn just simply works > > better. In every other aspect, I have come to like the "git way" more. > > > > That said, I avoid commandline git as much as possible. I prefer to use > > TortoiseGit (in Windows, at home), or SourceTree (at work, where I use a > > mac, and SourceTree is probably the least shitty frontend for git). > > > > I like to say, that for someone who knows Subversion, learning git > starts by > > realizing that all the usual svn concepts, apply to git, just NOT with > the > > remote repository. The svn-like commands work with the local repository > > clone, and then it has a separate command set for interacting with > remotes. > > Of course it's not a 1:1 match, but it's a good starting point. If you > are > > able to "catch" that, then learning how to work with git becomes a LOT > > easier. > > > > > > > > On 16 February 2017 at 00:31, Alex Ionescu <ion...@videotron.ca> wrote: > >> > >> On Wed, Feb 15, 2017 at 9:01 AM, Zachary Gorden > >> <drakekaizer...@gmail.com> wrote: > >> > Why is there a need for anything beyond "git commit" or "git push" or > >> > "git > >> > pull" to do anything? > >> > >> Good question. I've never used any other git command other than those > >> (except git checkout). Oh, that's lie, I've also used "git branch", > >> just like on svn, to create a branch. > >> > >> Sounds like you've never actually used git? I've never rebased in my > >> life, and I don't know what other commands even exist. > >> > >> Best regards, > >> Alex Ionescu > >> > >> _______________________________________________ > >> Ros-dev mailing list > >> Ros-dev@reactos.org > >> http://www.reactos.org/mailman/listinfo/ros-dev > > > > > > > > _______________________________________________ > > Ros-dev mailing list > > Ros-dev@reactos.org > > http://www.reactos.org/mailman/listinfo/ros-dev > > > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev > > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev > > _______________________________________________ > Ros-dev mailing list > Ros-dev@reactos.org > http://www.reactos.org/mailman/listinfo/ros-dev > -- Best regards, Alex Ionescu
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev