We don't understand TFS and we don't want to.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
Come to think of it, do you think the Git developers have ever talked to anybody who's been subjected to their shitty product as a condition of employment? Ever? Even once? It's hard to imagine how Git could be in its current state if any had.
I mean, I don't think Linus, for one, would care much if anyone expressed annoyance. He'd shout expletives at them until they leave, and then keep hacking away at his terminal.
-
@magus said in We don't understand TFS and we don't want to.:
I mean, I don't think Linus, for one, would care much if anyone expressed annoyance. He'd shout expletives at them until they leave, and then keep hacking away at his terminal.
Oh right, he's the open source hero, the person all open source developers aspire to be like. An extremely unlikable and incompetent dumbshit.
So glad all these big companies are shoveling tons of money into open source and adopting its "principles". If "got mine, fuck you" can be considered a principle.
-
@boomzilla said in We don't understand TFS and we don't want to.:
@magus said in We don't understand TFS and we don't want to.:
Unless you're talking about adding it to the history of work done. And that above else, is a concept no one cares about if all they want to do is check in their work.
Check in it for what?
-
@tsaukpaetra That thumbnail is amazing.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
@jaloopa said in We don't understand TFS and we don't want to.:
I think this is one argument you should step away from. Cherry pickers and cherry picking both come from the actual act of picking cherries
And yet I am not picking cherries. I'm working on source code. So what's the metaphor exactly? When I "stash" the source code, it feels like I'm "stashing" a document in a hidey-hole, ok. But when I "cherry pick" suddenly my document becomes a cherry? How does that make sense?
When you cherry pick from a branch, you're picking specific commits from that branch to merge into another branch and ignoring the rest of the commits. It's like when you cherry pick from data to prove a point you ignore the data that doesn't support your point.
Let me ask you a different question: do you honestly believe there was any debate among the Git developers about which term would best communicate that concept? Any debate at all?
If the email list examples I've seen are any guide, there was at least some abuse by Linus when someone proposed something he disagreed with.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
The solution is to boot Git's current development team and replace it with people who know how to write software and actually give a shit, instead of people whose primary attitude appears to be "never do anything even slightly difficult" and "got mine, fuck everybody else".
I know there's a project to make a Git API, but I wonder if it would be easier to just make a completely new product that's compatible with Git archives, and therefore would be an easy migration for anybody already using git
-
@dcon said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
I wish we could have that many builds per hour.
Really. On our build server (under powered VM), it takes just over 2 hours. Much of that time is the signing / installer build.
Ah. Yeah, we don't have signing or installering going on.
I suppose the one benefit this provides is that we don't have to worry about things like Oculus' "we forgot to renew our certificate" SNAFU to happen, but on the other hand "oh noes, som1 culd hax the client!!1!1!"
-
@jaloopa said in We don't understand TFS and we don't want to.:
I know there's a project to make a Git API, but I wonder if it would be easier to just make a completely new product that's compatible with Git archives, and therefore would be an easy migration for anybody already using git
Maintaining compatibility with software that doesn't want you to use other software can be difficult.
-
@jaloopa said in We don't understand TFS and we don't want to.:
I know there's a project to make a Git API, but I wonder if it would be easier to just make a completely new product that's compatible with Git archives, and therefore would be an easy migration for anybody already using git
I doubt it would be "easier", but it probably would be the only way to move forward on replacing Git with something that's not utter ass.
Even then adoption would be a bitch, because features like those commit hooks would have to be entirely re-designed from scratch, and the scripts that run in the hooks would have to be rebuild to send their output in a reasonable parseable manner.
-
@magus said in We don't understand TFS and we don't want to.:
@tsaukpaetra That thumbnail is amazing.
Oh, it gets more ridiculous (I think intentionally). But that's probably the cleanest action shot in the clip.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
So what's the metaphor exactly?
Picking just the bits you want and leaving the rest
@blakeyrat said in We don't understand TFS and we don't want to.:
Let me ask you a different question: do you honestly believe there was any debate among the Git developers about which term would best communicate that concept? Any debate at all?
Absolutely not. Don't think I'm defending Git (although cherry picking is one of the less confusing choices), I just wanted to make sure you were focusing on the right things
-
@dcon said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
I wish we could have that many builds per hour.
Really. On our build server (under powered VM), it takes just over 2 hours. Much of that time is the signing / installer build.
Not an uncommon situation. The teams I have been talking about often use liquid-cooled/over-clocked/high-core/SSD/etc. for their build machines - and that helps a lot...
But the really transformative change is moving to minimimalistic builds (which is much less than even incremental. Using .NET as an example, say the only change in a big solution (many projects) is in the implementation of one method...just generate the MSIL for that method, patch the DLL, update target, done.
If people are interested in discussing, a different thread would be appropriate as this has nothing to do with TFVC vs. Git or even TFS overall (aside from the TFS Build and Release pipelines having capabilities designed to support such a paradigm)
-
@jaloopa said in We don't understand TFS and we don't want to.:
Tracking changes to source control shouldn't require a grounding in graph theory or any of the other core concepts. A good tool would abstract that away rather than promoting it to required knowledge.
Graph theory is not really needed. However, you do need to know how the commits, trees and refs fit together.
And I agree that tools that abstract away are generally better and even that git is pretty poor at abstracting. But in this case I have not seen a solid abstraction that wouldn't be at the cost of lot of power. I have learned the underlying concepts long before git even existed (from darcs and tla) and it helped me a lot with each and every version control system I came across. Because once you know the concepts, you can see they are actually almost the same everywhere and are quite efficient everywhere, but without them you'll be stopped at the first non-trivial merge—which is exactly where you resort to exclusive check-outs and end up waiting on other people a lot and generally being inefficient.
-
@thecpuwizard That does sound interesting.
-
@bulb said in We don't understand TFS and we don't want to.:
But in this case I have not seen a solid abstraction that wouldn't be at the cost of lot of power.
Again:
- This is probably crap. ("solid abstractions" and "powerful" are mutually-exclusive-- really? Prove it to me.)
- Being usable by more people makes Git more powerful, not less. Imagine how powerful you'd think Git were if it turns out your grandma could use it (completely unprompted by yourself) to compare her fabric designs as easily as you could use it to compare source code changes. That'd be incredibly powerful.
@bulb said in We don't understand TFS and we don't want to.:
but without them you'll be stopped at the first non-trivial merge—which is exactly where you resort to exclusive check-outs and end up waiting on other people a lot and generally being inefficient.
As we've discussed in this thread, but for some reason Git fans keep ignoring, there are very good practical reasons to exclusively lock files in a source control system. The fact that Git can't do this makes it an inferior product compared to some of its competitors.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
And yet I am not picking cherries. I'm working on source code. So what's the metaphor exactly?
When you merge a commit you incorporate each change between the common ancestor and the commit you are merging. When you cherry-pick a commit you incorporate only the difference between that commit and its parent. That fits in the common definition of selectively choosing from what is available.
In Git, when you merge a commit that is a descendant of the current commit it by default just moves the branch point to the commit being merged. This is known as a "fast-forward" merge. When you merge a commit that is not a descendant of the current commit it creates what is known as a "merge commit," which is a commit which has two parents.
So although the temporary branch does not have intervening commits to be skipped, incorporating it with a cherry-pick instead of a merge will avoid creating the merge commit in the case where the branch has moved on from the point where the temporary branch forked.
-
@bulb said in We don't understand TFS and we don't want to.:
You can:
git push origin stash@{0}:u/blakeyrat/stash/test # ^^^^^^^^^^^^^^^^^^^^^ this essentially corresponds to the shelveset name you'd give to TFS
The usability of this leaves something to be desired.
A feature allowing one to automatically sync the stash to origin would benefit Blakey's common use case enormously.
-
@greybeard said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
And yet I am not picking cherries. I'm working on source code. So what's the metaphor exactly?
When you merge a commit you incorporate each change between the common ancestor and the commit you are merging. When you cherry-pick a commit you incorporate only the difference between that commit and its parent. That fits in the common definition of selectively choosing from what is available.
In Git, when you merge a commit that is a descendant of the current commit it by default just moves the branch point to the commit being merged. This is known as a "fast-forward" merge. When you merge a commit that is not a descendant of the current commit it creates what is known as a "merge commit," which is a commit which has two parents.
So although the temporary branch does not have intervening commits to be skipped, incorporating it with a cherry-pick instead of a merge will avoid creating the merge commit in the case where the branch has moved on from the point where the temporary branch forked.
You've explained what "cherry picking" means. He was asking why it was called that.
-
@mikehurley said in We don't understand TFS and we don't want to.:
You've explained what "cherry picking" means. He was asking why it was called that.
Yes but he's been told many times and refuses to admit that he learned anything from it.
-
@mikehurley I did explain it to him why it was called that last night. But I am past caring about @blakeyrat's not understanding that lot of the so called missing features don't make sense in distributed version control system.
I haven't used Mercurial but I suspect he would bitch and moan about that as well.
-
@lucas1 said in We don't understand TFS and we don't want to.:
@mikehurley I did explain it to him why it was called that last night. But I am past caring about @blakeyrat's not understanding that lot of the so called missing features don't make sense in distributed version control system.
I haven't used Mercurial but I suspect he would bitch and moan about that as well.
If you mean you've described it in a different thread, fair enough.
I have not seen the "why cherry-picking is the metaphor used" question answered in this thread. I'm kind of curious myself.
-
@lucas1 said in We don't understand TFS and we don't want to.:
But I am past caring about @blakeyrat's not understanding that lot of the so called missing features don't make sense in distributed version control system.
You do realize that being a 100% distributed version control system is a choice Git made?
-
@blakeyrat as I said I am past caring what you think on the subject. If you want to act like TFS jihadist that is upto you.
-
@lucas1 said in We don't understand TFS and we don't want to.:
as I said I am past caring what you think on the subject.
Too bad; if you listened to what I'm saying you might be a bit smarter. A bit. Maybe.
@lucas1 said in We don't understand TFS and we don't want to.:
If you want to act like TFS jihadist that is upto you.
I don't even like TFS. It's just better than Git. But then again, so is a ruptured bowel.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
Too bad; if you listened to what I'm saying you might be a bit smarter. A bit. Maybe.
I would doubt that.
-
@blakeyrat Correction, I did learn something. It is to completely ignore any of your posts regarding your opinions on source control. So at least I won't waste my time in future.
-
@mikehurley said in We don't understand TFS and we don't want to.:
I have not seen the "why cherry-picking is the metaphor used" question answered in this thread. I'm kind of curious myself.
It's been answered several times. It's a common English verb. Do I need to give you a lmgtfy url to the dictionary definition?
-
@blakeyrat said in We don't understand TFS and we don't want to.:
Right; because Git is a shitty product designed by incompetents who don't even understand basing engineering principles like "separate the machine interface from the user interface". Do you think Visual Studio's Git interface is as bad as it is because they wanted it to be bad? No, it's because the incompetent developers in charge of Git didn't do the most basic of design work before releasing their garbage shitty product to the world.
make your own
-
@blakeyrat said in We don't understand TFS and we don't want to.:
And please stop using the term "dumb down" or at least not without actually defining it. What does it even mean?
Do you really need us to dumb it down for you?
-
@blakeyrat said in We don't understand TFS and we don't want to.:
Yeah, sorry, designing software is difficult. But using "it's difficult" as an excuse to never improve anything is disgusting to me.
That's generally the rationalization you give when people ask you why you don't roll your own.
-
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
-
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
-
You'd rather live in shit than let the world see you work a shovel - Lt. Cedric Daniels (The Wire)
That pretty much sums you up I think.
-
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
-
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
-
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
.... Since when do you need money to be paid for work?
-
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
.... Since when do you need money to be paid for work?
Now I'm confused. Were you suggesting that I accept payment?
-
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
.... Since when do you need money to be paid for work?
Now I'm confused. Were you suggesting that I accept payment?
@pie_flavor said in We don't understand TFS and we don't want to.:
'someone else fix it. Unless you pay me.'
I mean, you're the one who said it.
-
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
.... Since when do you need money to be paid for work?
Now I'm confused. Were you suggesting that I accept payment?
@pie_flavor said in We don't understand TFS and we don't want to.:
'someone else fix it. Unless you pay me.'
I mean, you're the one who said it.
Note the quote marks. I was mocking him, not making a statement of my own.
-
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@tsaukpaetra said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
@blakeyrat said in We don't understand TFS and we don't want to.:
@pie_flavor said in We don't understand TFS and we don't want to.:
make your own
You gonna pay for my time? I'll quote you a rate.
'Someone else should fix it. I'm a great software developer who's complaining about shitty software and saying that anything could be better, but meh, someone else fix it. Unless you pay me.'
Pot? Meet kettle.
Hmm? I have neither money nor skill.
.... Since when do you need money to be paid for work?
Now I'm confused. Were you suggesting that I accept payment?
@pie_flavor said in We don't understand TFS and we don't want to.:
'someone else fix it. Unless you pay me.'
I mean, you're the one who said it.
Note the quote marks. I was mocking him, not making a statement of my own.
Ah. So instead I should have said:
Kettle: Meet kettle. Oh wait, no, that's just a dirty mirror...
???
-
@blakeyrat said in We don't understand TFS and we don't want to.:
As we've discussed in this thread, but for some reason Git fans keep ignoring, there are very good practical reasons to exclusively lock files in a source control system. The fact that Git can't do this makes it an inferior product compared to some of its competitors.
And there you go, assuming that your state is the state of other people as well. With a distributed version control system, everyone is always on a different branch. Your commits don't clash until you ask for a merge (whether between two local branches or a local branch and a remote branch) and you have total control over when you ask for such a merge. (Well, modulo whatever your employer demands.) Locking is technically unnecessary in such a scenario; you can use it locally to support your tools, but it has nothing to do with the version control system itself as you are not working directly on a shared resource.
While you continue to assert (incorrectly) that there's really a single shared state, you'll continue to assert (incorrectly) that locking is necessary. You'll also think (incorrectly) that branches are expensive things to be hoarded carefully, instead of being throwaway things that you can create and discard multiple times a day if necessary. It's all a mark of that basic mental model not matching the reality of systems in different places not actually being magically synchronised with each other.
-
@dkf said in We don't understand TFS and we don't want to.:
And there you go, assuming that your state is the state of other people as well.
No, Blakey has a reasonable point here: some professions use file formats that are unmergeable. For such files, workflows were modifications to such files are coordinated by locks are most efficient.
Programmers' file formats tend to be mergeable, so we tend to not need such a feature. So I'd say in this case the person making such an assumption would be you.
Such a feature could probably be fairly easily bolted onto the side of Git, much like LFS was.
-
@greybeard These assets don't change all that often in reality. Unless you are building maybe a game or something. If these assets are being changed that often then as I said there are other solutions that would be better suited and have it as part of the build process to pull in these assets from another source. If the are that many binary files, git can't delta them anyway and then repo could become very large. It is a valid complaint and then maybe Git isn't the tool for you. However it doesn't mean that Git is completely broken, it just means that it isn't the tool for you or maybe you could be using Git for the code parts and pull in Assets via SVN when it performs an overnight build.
In a lot of applications realistically binary files don't change that often. It is most likely to happen during once when being given the assets, rebranding after initial release or when updating the odd PDF or other document that probably isn't part of the main application.
-
@greybeard said in We don't understand TFS and we don't want to.:
No, Blakey has a reasonable point here: some professions use file formats that are unmergeable.
Yes, and git itself doesn't actually do the merging (except with plain text formats, which covers stuff like virtually all program source). Instead, for files where it knows there is a difference during a merge (and you've not overridden its default behaviour), it provides two or three versions:
- The version you've got.
- The version the other commit has.
- The version at the most recent common point in the history (if it isn't one of the other two, though those are actually the easy cases).
If it isn't a type that it's got a defined three-way merge operation for, it just gives you those files and asks you to sort it out. That's all it can do. (It's because the merges are based on three-way diffs that it can do a fairly good job with merging code most of the time.)
Of course, if you have a fight between two developers over what an unmergeable file should be, you've got a problem. But software can't really resolve that, as it is fundamentally a social issue. Locking wouldn't help much either (it'll just make one or other developer really cross). You also get such fights in mergeable files too; again, it isn't the software that is causing this, but the fact that there are developers who aren't working well together. If it is because the unmergeable assets are actually bound for different releases of the software/product being developed, they should actually be on different branches, not mulched together, and locking would be counterproductive for that.
-
A more balanced perspective.
-
@lucas1 said in We don't understand TFS and we don't want to.:
Unless you are building maybe a game or something
@lucas1 said in We don't understand TFS and we don't want to.:
If the are that many binary files, git can't delta them anyway and then repo could become very large.
Which is why we don't use Git.
@lucas1 said in We don't understand TFS and we don't want to.:
It is a valid complaint and then maybe Git isn't the tool for you.
But! But! All you have to do is learn how to use it! And it's perfectly capable! And wharglablarg!
@lucas1 said in We don't understand TFS and we don't want to.:
maybe you could be using Git for the code parts and pull in Assets via SVN when it performs an overnight build.
Yeah, let's make the workflow x^2 more complicated for no benefit!
-
@tsaukpaetra I said earlier in the thread if you were using lots of static assets you might want to use something else.
-
@lucas1 said in We don't understand TFS and we don't want to.:
@tsaukpaetra I said earlier in the thread if you were using lots of static assets you might want to use something else.
You expect me to read ~400 posts to find the one time you insinuated you were wrong? Dude, where do you think you are right now?
-
@tsaukpaetra No. It isn't unreasonable for you to just take my word for it.
-
@tsaukpaetra I never ever said that Git was the source control system for everyone.
undefined Yeah, let's make the workflow x^2 more complicated for no benefit! undefined undefined undefined
As part of my web tooling, I have 3rd party dependencies that include things from the net, 1st party libraries that are coming from Nuget and things that have been dynamically linked.
If you are trying to build something complicated your tooling and circumstances won't be simple and one tool won't fit all.
I am not a game developer but I suspect their tooling is much more complicated than what I use.