- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
We still use VSS 6.0, and one of our databases is over 40GB! It is a small team, so checkout collisions are few and far between. One thing we have learned -- do NOT rebuild names.dat if you use long filenames. Well, unless you feel like renaming every file afterwards.
Admin
Admin
I'd just tell them we can set "needs-lock" for everything and call it a day.
It's difficult to presuade people who don't trust automatic merge that it can be done.
Admin
As someone who checked in code to a VSS repository 2 days ago, I'm not sure if I find your use of past tense amusing or depressing
Admin
If you never inflict (or push, if you want to be particularly boring about terms I suppose), then you've got the same problem as if someone never committed in any VCS where they're the same action. Or the same problem as if someone was working on a branch that they never merged back in.
Admin
And, clearly, failing to properly separate "commit" and "inflict" leads to "conflict".
Admin
Don't rebase me bro!
Admin
I think in this analogy shelving is any sort of receptacle for bringing back everything you brought with you on a hiking trip. You keep the results to flush at a later point, perhaps having added to them.
Admin
Is anyone lese concerned about the metaphorical comparison of his code with what he produces in the bathroom stall?
Admin
SVN does support locking files so that no one else can lock the file or commit it until the lock is released. TortoiseSVN supports this as well, and will indicate the locked status in the icon overlay.
Admin
This is what happens when you force changes on people who are not ready for them.
Admin
But will they ever be ready? Meanwhile VSS is a risk for your code history when it inevitably grows corrupt.
Admin
FTFY. And yes, I still have to use it. It's ok though, I have a git backup.
Admin
They'll eventually retire or die, so yes.
Admin
Admin
Admin
Admin
This is why "good" build systems have the ability to execute code in a Lab environment when appropriate.
Trivial example: I am developing applications that run on both Linux and Windows platforms. As part of a "validation build" (not a CI build) the code gets deployed to many machines (different versions, configurations, etc.)
Disclaimer: I have forgotten the exact context of this part of the discussion and am too lazy to scroll back and find it....
Admin
The sort of thing I'm thinking of is units for kernel-mode shit that won't run in user-mode programs without superheavy frameworking (i.e. sources of test-harness bugs). If the kernel-mode shit needs to be compiled in rather than loaded in a module, then to run automated unit tests, you have to force an update, reboot, and see what happens. And cope gracefully on the build machine if the code is bad and the test machine doesn't reboot properly.
Admin
Admin
And that doesn't solve the problem of how the AUT procedure in the build copes with a borked test machine.
And really, such a thing (real hardware, virtualised, or emulated) is a heavy-weight solution to the problem of unit testing a piece of platform-specific code.
Admin
I did conflate two topics....
Automated Integration Testing of things that have hardware/kernel/etc type dependencies. This is where I covered the ability of modern build systems to interact with a "lab". I have set up systems where part of the build includes flashing the bios of a target, loading an O/S, then user-mode code, and finally running tests.
Unit Testing of similar things...
In this case, the code can (which does not imply should) be refactored. Consider the following as a mental exercise:
a) Rework code so that every unit (method, function) takes all inputs as parameters, along with all dependencies (i.e. lambdas, function pointers) being passed so that the code does not directly call anything.
b) Rework parameters such that they are minimal. Use interfaces or values instead of classes
At this point the individual methods are 100% testable and have no inherent dependencies. Anything specific to the target (.e.g. kernel calls) have been abstracted out of the code and can be replaced for testing purposes.
Admin
Yes, I know how it's done. All that hides in my remark about "superheavy frameworks". There's a lot of work there to be able to unit test kernel-mode startup / etc. code, and it doesn't help test e.g. device drivers that can only be run in the real kernel (or, again, with superheavy mock-environment).
My basic assertion is that not everything can be unit tested in a fully automated way, or not at a reasonable cost.
Admin
Admin
I don't git, but from my understanding, the rebase happens from something committed in the repo, doesn't it? Not a bunch of unstaged changes.
Admin
Source History Information Tool. Nice acronym. heh heh
Admin
*Ways and means exist to extract the original commit.
Admin
I guess we can wait for a gitter to explain, but at least you know what you're getting into at that point.
Admin
http://www.oldskoolman.de/foto-filter/tut/kaefig/gitter-gross.jpg
Admin
Yes but which one? and can we trust it? Setting my trust levels parameter to level 'orange' or 'keen awareness of surroundings'.
Hmm. Now my trust levels are barking up a storm.
I know! I will set a flag to silence the barking before the instance occurs, and reroute barking to my email account.
Hmmm...Spam...I know!!! Inside my email I will set a filter to auto-delete 'trust-bark' emails as they come in.
There! I took care of everything.
Admin
I don't "git" it.
Admin
Until you purge the repository. It's the purge (which really deletes things, instead of just marking them as hidden) that worries me as it actively destroys history.
Admin
"Nononono. We have stalls so one person isn't blocking the whole bathroom with his exclusive access."
Admin
If you look at 100% then I will agree. But I remain confident that the code could be structured so that 95%++ of the code could be tested at minimal cost - which is radically different than "this is a device driver I can't unit test it"
Admin
If you mean run a piece of code that claims to test it, sure. That actually test it, especially when it is code that is doing integration of a bunch of other components?
Admin
I mean what I say and I say what I mean (at least that is always the intent, but I am not infallible)....
Look at it this way. A given method/function/etc. has a starting address and ending address in memory. "Testing the code" for that method (at the unit level) means testing the specific instructions that are between those two bounds. Everything outside of that is outside the scope of a unit test.
Code can be structured so that all of the lowest level (e.g. that which directly interacts with the kernel) is written inside of wrapper routines. The rest of the code calls these wrappers exclusively. Now all of the code, except the wrappers can be 100% tested (at the unit level) simply be having a different implementation of the wrappers.
Admin
What's that sukkah doing there though? This article is dated 30th April. It would be like having a Christmas tree in a topic posted in June.
Admin
Admin
So do Australians normally crap in Jewish religious artifacts?
Admin
Plus I'm not sure if that structure actually qualifies as a sukkah since it has a corrugated iron roof and Wikipedia tells me that sukkahs[2] are topped with branches.
[1] This is not a serious statement [2] Not sure if that's the correct plural
Admin
No doubt they have to wear proper clothing.
http://static.tvtropes.org/pmwiki/pub/images/sucka-back-2.jpg
Admin
I'm not sure I see the connection between sukkahs, bogans and pimps.
Admin
Sukkah kind of sounds like sucker, and pimps stereotypically call people the latter.
Admin
Ah. That makes sense.
The movie that the picture is taken from is even called "I'm Gonna Git You Sucka".
Admin
I see you've done this answering-stupid-questions thing before.
Admin
Admin
True story: in a meeting the other day about how version control could help our BI team, someone asked, "Is there a way to prevent people from checking out the object while I'm working on it? We're doing that informally at the moment."
Admin
:facepalm:
That's why an SCM is not just a shared drive. There's a separate step of saying “this is a version that's good enough to show to others”.
Admin
Correct, to a point. It uses the same underlying (very nice) git merge structure and is very good at detecting when you'll have a conflict. When it detects this, it'll hold up the rebase and let you fix the conflict manually, then you just
git rebase --continue
to finish the rebase.Maybe :hanzo: Meh
Admin
Did you
BITCHCOMPLAIN at him and say "NAUGHTY DEVELOPER, SPANK SPANK SPANK"?