I mean even if you don't know the command (or they are using a different version control system then you are used to) you can always check the help or man page. It's still a trivial task.
Disagree - You're testing can someone use the basics of git in a terminal.
> you can always check the help or man page.
Assuming you know how to do that, and what you're looking at. Say I'm sat down in front of a terminal, and I'm told "here's a terminal, make a change and commit it"
I type in "git", and I get: "usage: git" - If you're used to using shell tools, then sure you can make sense of it, If you're not, then you're done.
You said "commit" and the description for that in the "git" command is: > grow, mark and tweak your common history > commit Record changes to the repository
Right, I don't know what that means, but lets try this `git commit`
> fatal: not a git repository (or any of the parent directories): .git
Ok, No idea here. I somehow figure out that git init will give me a .git folder. Now that I've got that out of the way, I try git commit , I get:
> nothing added to commit but untracked files present
Ok, how do I track files? "git help" doesn't mention tracking files. I'll try "git commit hello.txt", which gives me:
> error: pathspec 'Hello.txt' did not match any file(s) known to git
I give up at this point really.
(by the way, I got this far by doing this walkthrough this morning, and googling "how to use git" - which told me the answer in 3 seconds).
Not knowhing how to use a terminal vcs, or knowing the commands to perform even the basics doesn't mean you can't use version control, it just means you can't use a terminal for git. Is my 9 years of C++ and perforce experience because I didn't know that commit was analogous to submit, or because I've used a graphical interface for all that time?
That's part of the test, to see if they're familiar with the command line and if they know how to open the man page. It's trying to weed out the people that can only work in the confines of an IDE and gui tools. That said I wouldn't expect anyone to know git from the man page, I would however expect anyone for a senior role to be familiar with what is a de-facto industry standard.
And source control in general is a great topic for interviews on both sides. Many devs (and companies) don't know what a branch is or what you'd use one for. Many companies make it hard/impossible to create feature branches, either by policy or crazy mono-repo stuff. Even their choice of SCM says a great deal about them, I'd avoid anyone that uses clear case or TFS.
That doesn't tell you anything about how good a programmer they are. I don't need to use a command line or man pages for 99.999% of my work, so I'm not going to waste time learning to use more tools.
> It's trying to weed out the people that can only work in the confines of an IDE and gui tools
Ah, so anyone who uses a terminal is superior to someone who uses an IDE or a GUI?
> I would however expect anyone for a senior role to be familiar with what is a de-facto industry standard.
In _your_ industry. As I've mentioned before, I use Perforce (which is standard in my industry).
> And source control in general is a great topic for interviews on both sides
Agreed, but asking somone to rattle off `git init git add . git commit -m"I can remember three lines"` doesn't tell you anything about how much they know about source control. Talk to them about branching/workflows to find out how much they know about source control, or let them use the tools they're comfortable with, but plonking someone in front of a terminal to rattle off some commands is the equivalent of looking for a "culture fit"
Yet they carried mid/senior-level titles.
You should absolutely test for the things that you think are annoyingly trivial if this person is to be a close peer or a direct report, because your level of disappointment will be so much greater after that person becomes an employee.
I define "annoyingly trivial" as the things that you feel everyone should know "at this stage", and you would be annoyed at having a conversation about said topic for more than 5 minutes.
My personal opinion is Git definitely falls into that category.
I can count on one hand the number of times I've relied on man pages for descriptions. Using git as the example, compare https://man.cx/git-commit(1) to https://www.atlassian.com/git/tutorials/saving-changes for someone who has never used version control. One of them talks about saving, with examples. The other talks about storing an index in a log.
> My personal opinion is Git definitely falls into that category.
There are plenty of developers with working knowledges of branching/merging workflows, version control, using visual tools, or non-git tools.