112

I am working in a governmental institution. The technology being used here and the methods for developing software are quite old fashioned.

They have tons of storage space but no appropriate space to keep and maintain applications that are used to automate most of the work here.

The institution would not allow me to use SCM software like GIT or SVN.

What would be the best approach to keep code quality and be able to add new features in the apps later on?

How can I remember changes I have made to the code without breaking it?

EDIT: I forgot to mention, they have network drives for each of the computers and somehow these network drives make or save backups in periods. However if I don't create my own plan allowing to save my work and be able to add new features without breaking the existing code, there is no big advantage over an SCM solution.

EDIT: Since many people suggested portable Git I have to add more info. I tried installing Visual SVN server, but it failed because I don't have admin privileges to install. I also tried downloading regular Git shell, but the firewall or the network settings didn't allow me to access Git download page. I even tried, sending portable Git to my email which is Gmail. Google detected the exe file in the package, and it too didn't allow me to download the portable Git version on my work computer. Another thing I have to mention, the network policy applied to the computers trough the institution do not allow using USB storage devces. You can use the USB ports to charge smartphone or power some gadgets like small speakers. Also as some people mentioned, there are computers on which not even Internet is allowed.

8
  • 4
    you can bypass gmail filetype filter by renaming it a "well-known" extension, like .mp3, .zip .
    – Pac0
    Dec 9, 2017 at 15:12
  • 3
    I am asking myself, why the heck does this question still have so much upvotes in year 2017 - I am really scared
    – Ole K
    Dec 11, 2017 at 12:59
  • 10
    Find another job. These people are unreasonable dinosaurs. You will find so much more job satisfaction somewhere that wants you to use proper modern tools.
    – Rob K
    Dec 11, 2017 at 15:47
  • 6
    There is no reason that a Government Institution should not use SCM. In fact they are probably breaking a variety of process and audit rules by not using an SCM. I'd suggest you attack it from that angle
    – jk.
    Dec 12, 2017 at 12:35
  • 2
    @jk brings up a really good point. If a defect causes monetary loss, enables fraud, or results in someone being injured or loss of life the auditors will descend upon you like lions on a lamb - and somebody will lose their job. You most likely. That upper management won't risk their pension for the likes of you. Dec 13, 2017 at 11:28

14 Answers 14

177

You can loosely replicate the role source control plays with three simple tools:

  • Back-up software (Commits/Check-ins)
  • Folders (Branches)
  • Performing a directory merge between two directories using a tool like KDiff3 (Merging branches)

Basically your workflow becomes:

  1. Create a new folder (new branch)
  2. Copy files to the new folder (new branch) from an existing folder (existing branch)
  3. Make a back-up of that folder (finish creating the new branch)
  4. Do some work
  5. Make a back-up of the new folder (commit)
  6. Do a directory merge from one folder to another (merge)
  7. Do another back-up in the other folder (commit the merge)

The more monolithic source control systems, like SVN or TFS, basically do this for you behind the scenes.


Now, the reality is this is like a Bus Company telling its drivers that they can't drive buses that have a battery, forcing the drivers to push the bus down hill and then pop the clutch to start the bus... this is terrible and indicates that the current management doesn't know anything about running a bus garage. My condolences.

But at least you can get the bus started.

23
  • 41
    This is actually the correct answer given the constraints. It's also how we did it before VCSes became a thing.
    – Blrfl
    Dec 5, 2017 at 13:45
  • 35
    +1 though the easy counter argument to this would be in the lines... we used to program with punch cards too, doesn't mean we should do it again
    – Newtopian
    Dec 5, 2017 at 14:57
  • 25
    +1 - for answering the question. There was no source control in my first job and this is how we did things. Note: there were only two of us, we got on well and we mostly worked on separate projects and, with hindsight, it was still a bad idea. Any additional team complexity and it'd be a nightmare.
    – Bob Tway
    Dec 5, 2017 at 15:10
  • 18
    I doubt the OP would be able to install/download a tool like KDiff3. If he can't install git locally, I doubt he could git anything else running locally.
    – Ivan
    Dec 5, 2017 at 15:27
  • 5
    @Ivan: After looking through the comments It seemed like the OP was on a Linux machine. I've found organizations using this tech stack usually have a number of diff/merge tools available as part of the normal desktop build, and kdiff3 is a pretty common one. There might be other ones that do directory merges too maybe? Or the OP is stuck merging files one-by-one (ick!). But yeah, this situation just plain sucks. Dec 5, 2017 at 16:29
139

Although the consensus would certainly be to not work for this company I don't believe that really answers your question.

You can't really replace SCM.

You might not need the usual bells and whistles of a full-blown system. For example, the company may refuse a request for a server, but permit the use of a local SCM. They may dislike git, but permit subversion (or some other versioning system).

There is of course a question: what are your colleagues using, or any previous workers? If you're the first Software Developer they have, then it's your time to push very hard for the resources you need.

In the end, if your company doesn't respect your role and experience and won't permit you the tools you need, then you are going to run into even worse (and more stressful) problems than a lack of source control.

14
  • 11
    The apps I am working on are a single person projects. And, no, I am not the first programmer here. Many have come here and went away.
    – Vlad
    Dec 5, 2017 at 12:11
  • 7
    And I also see frustration in some of the colleagues, when they attempt to use these old ugly structured apps, with a face "Why are we doing this stuff every year".
    – Vlad
    Dec 5, 2017 at 14:17
  • 6
    @Vlad: you are aware that neither Git nor SVN needs more than a network drive? For VB6 and single person projects, I would go probably work with SVN, simpler to deal with binary files. I did this over several years, until we replaced out last VB6 program.
    – Doc Brown
    Dec 5, 2017 at 15:54
  • 24
    @Vlad "Many have come here and went away." Find a respectful way to tell them that this company culture likely has something to do with their turnover.
    – jpmc26
    Dec 5, 2017 at 19:15
  • 26
    Reminder to self: Ask what SCM the company uses in interview. If the do not know or say none, then tell them, thank you for your time and wasting my time.
    – joojaa
    Dec 6, 2017 at 11:21
26

Basically, there is a management problem (your organization don't understand the basics of software development process, e.g. the V-model) condensing into the apparent inability of using minimal present-era workflow, methodology, and tools. This is common (read about Peter's principle).

BTW, I guess that recent SNCF railway incident in Paris at end of 2017 have a similar cause (total lack of software culture at high management level, hence blockage of a major Paris railway station for more than a day; of course there are very competent IT teams at SNCF, but they are not consulted on major decisions). I can name several European industries with total lack of software culture and I am sure to be able to find similar things even in the USA.

The main issue is: are you working alone on your code base, or do you work with colleagues?

If you are working alone, you can use git locally on your computer, and backup your code (and probably even your .git repository) periodically (to that external storage space). Be sure to never lose more than a half-day of work (so back up your data periodically and reliably).

(I suppose that you know at least both git and svn and that you know the technical superiority of git; if you are not even allowed to install some tool like git on your work computer you need to have a serious conversation with your boss about that issue: you need the ability and authorization to install external open source tools (and that goes with your responsibility to choose, configure and install them wisely & carefully and without known vulnerabilities)

If you are working with several colleagues (I guess less than a dozen of them), you need to convince all of them to use a version control system, and you probably need to tell about that to your immediate (and common) boss. He could (probably) decide (or simply implicitly accept) that some machine (perhaps even some old desktop, perhaps even your own desktop) is used as a git server. You absolutely need to set up that server so that the git repository is backed up at least every hour; you cannot afford (and you need to talk to your boss about) losing more than an hour of work of your team.

BTW, I love Linux, and I would recommend installing Linux on the machine acting as a git server; then installing git and configuring periodical backups (with some crontab job) is very easy; notice that a git server could run Linux with Windows clients using it. I would even suggest you to switch your development machine to Linux if you can. It is "cheaper" and much more developer-friendly

But you need to use an SCM. You might ask your boss a different question: should your team use an existing SCM or should it reinvent the wheel and make your own SCM? Bosses are generally against the idea of reinventing the wheel. If you are permitted to reinvent the wheel, tell your boss that it a full time job for at least a year (that will probably make your boss cry, then accept the obvious way) and have fun making your own SCM. In that unlikely case, be sure to study the existing SCM systems, and ask to make your SCM system some free software tool (to be used and improved by other teams).

You may need to prepare (during several days) a precise and specific argumentation for the need of an SCM: first for your colleagues, then for your immediate boss. Be sure to also suggest concrete solutions (like running some git server on some desktop or some "old" server, and backing it up hourly thru a crontab job)

Don't install any software (from outside, even open-source) on your work computer without permission (in most countries, especially for sensitive IT work for the State, installing a software without permission is legally a crime, and you might lose your job or go to jail if you do that .... so be sure to be authorized to do so; perhaps cover your ass by asking a permission in writing, or at least by email).

(either you'll need to ask on a case by case basis, or you need to get trust from your organization to be allowed to install any legal software -mostly open source or free software- on your work computer).

PS. How to technically build, configure, install then use git (from its free software source code) -or most other free software VCS- on a machine (even without admin permission) is a very different question (to be asked elsewhere). And it is possible to install then use git without any admin permission, provided you have enough resources (time, disk space, some C compiler, etc...) for that.

I tried installing Visual SVN server, but it failed because I don't have admin privileges to install.

This is solvable by some specific configuration and compilation of your git or svn from the free software source code of git or SubVersion -not just a binary package- (and also the source code of dependencies); how to technically do that is a different question (but such technical questions should go at some other place). Of course you should ask permission (from your boss) to compile the source code of git before doing it. He will tell you, or you will discuss with him, about the practical details (if he accepts such a solution) regarding transfering that source code from outside onto your work computer.

13
  • 5
    Can you access Github and build Git from source?
    – Willem
    Dec 5, 2017 at 23:21
  • 5
    @RobertHarvey Security must always be a lower priority than doing your job (the organization's, not your job specifically). Because you will be the most secure if you do nothing. And then the government disbands your organization because it never does anything (or it does even less than most government organizations). Or you all lose your jobs because the organization goes bankrupt (if not government funded). Or so on.
    – user253751
    Dec 6, 2017 at 0:03
  • 6
    @immibis: Sorry, but that's a straw man. There's no such thing as complete security, and adequate security doesn't require you to sacrifice productivity if you do it properly. Note that the simplest and most effective way to have effective security (given sensible work product handling precautions) is to simply unplug from the Internet. Dec 6, 2017 at 2:19
  • 8
    @RobertHarvey That won't stop an employee stealing your IP. The easiest way to stop employees stealing your IP is to not have IP to steal. You said security was the first priority, not second or third, in which case productivity must be the second or third priority, and therefore should be reduced in favour of security.
    – user253751
    Dec 6, 2017 at 2:28
  • 3
    @immibis, you sound like someone with no experience working in these environments. You are also talking about customers that can legally lock you up and throw away the key if you steal their IP. It's an environment where mishandling of information (not even outright theft of IP) can cause serious harm to the organization. Of course security is the primary concern. It makes working in that environment a pain. Dec 6, 2017 at 13:44
11

First thing I would do is identify specifically what the government agency (presumably the IT department) is objecting to. If they have storage space, but no way of hosting VMs for servers, then the problem may be that the IT department is saying no to the SVN or GIT server and that is a big distinction. If the problem is the country of origination--i.e. we don't trust tools created by foreign entities--that is a different problem.

You can run GIT completely within the file system, which I have done on infant projects before I'm ready to do anything with them. GIT also does not require administrative privileges to install.

If you absolutely cannot use Git for whatever reason, then you have a couple of options available to you:

  • Educate: By not allowing version control, they are introducing significant risk. You need the ability to back out of changes that prove to be more problematic. You need the ability to save the government money and time, and SCM does that. You need to be able to clearly explain how. You also probably need to do an analysis of alternatives to really drive home the point.
    • One alternative would be hosted Git
    • Another filesystem Git
    • Choose at least one, but not more than two more alternative SCM tools
    • and finally what is like to work without version control
  • Go 70s era development: There is a reason that patch and diff were made so long ago (80s). They were the enabling technologies that made version control possible.

What does 70s era development look like? It ain't pretty, but it's how we got started. Applications were much smaller. Essentially they had some common things:

  • There was the concept of the gold standard. This was the master source code that had features complete.
  • There was a Configuration Management (CM) team. Their responsibility was to get changes from development into the gold standard correctly. This is where you need patch and diff to substitute for the team.
  • You worked from a local copy of the source code. You finish a feature in it's entirety and submit it to the CM team for them to integrate. Usually there is an accompanying document so that new files get created and obsolete files get deleted, etc.
  • Then you fix any errors from the integration process.
  • Before you can entertain another feature or bug fix you get a new copy of the gold standard.

Essentially, it is an error prone process with lots of potential for things to go wrong. The idea of "branching" is easy to implement, but a nightmare to manage. The major issue is that when you have too many copies of the source code it's hard to understand what is the correct baseline for production. For practicality's sake you have to become single threaded.

This is what you need to include in your analysis of alternatives.

3
  • Nah, the people here do no consider the IT department as a crucial part of the work. They consider it a secondary, a department that is just a service to the other departments. So it can suffer :)
    – Vlad
    Dec 5, 2017 at 14:12
  • 4
    @Vlad, did you investigate whether its server resources that are restricted or the application itself? If it's server resources you can use git in file mode and it will be much better than doing it the hard way (i.e. 70s era). Dec 5, 2017 at 17:24
  • 5
    I have gotten a long way with educating my clients what costs are associated with their decisions. An analysis of alternatives is a great way of communicating the implications of those decisions. Sure, it's a lot of work, but a few days of documentation and editing can save you weeks of heartache and headache later. Dec 5, 2017 at 17:27
9

Given the constraints you mention in the comments (e.g.: can't get to Git download page, Windows platform, and using Visual Studio 2005), I can see 2 options, both of which I have used before in a similar situation:

  1. Use Visual SourceSafe as Emerson suggests in a comment. I worked with a team using VS 2005 some years ago, while most of the rest of the company was using standard version control in Linux/Unix, and they happily used Visual SourceSafe for their CM. It's pretty old-fashioned at this point, but better than nothing.
  2. Speaking of better than nothing, I've been in a similar bind myself. If you can't even use VSS (perhaps the plugin is not installed?), and since you say there is plenty of storage space available, hopefully you are allowed to use some of it. I implemented a manual file-based version control protocol. At the end of every work day, I would copy my code base to a new date-stamped directory. If I needed to refer back to previous work (or roll back), I would look at previous dated directories to find the change I needed. Since you have Visual Studio available, within a couple hours, you could probably use VS 2005 to write a simple tool to help you automate the directory creation and file copying.
2
  • 1
    I +1ed for your first option. Your second option makes me want to throw up. But I understand.
    – jpmc26
    Dec 6, 2017 at 1:45
  • @jpmc26 Sometimes you're just working in a restrictive environment in the 1990s (or feels like it's stuck in the 1990s) and you literally have no other option. Not pleasant, but better than nothing. Dec 6, 2017 at 14:19
8

They have tons of storage space

Are you allowed to use it at your on decision?

If so you could create a file system remote repository which is better than nothing. The downside is that pushing becomes slow while the project is growing because git needs to download the whole repository to look for the changes...

so far the computers behave like ordinary user, forbidding me to install third party software.

git also comes as a portable app so that you can install it in your $HOME or %USERPROFILE% path.


As a conclusion: I would not let them forbid me using a SCM1. I would use it "in private". After all nobody cann tell if your code has been developed with or without being checked in somewhere...

1) when I started using git some years ago my customer preferred a different SCM which was quite slow and unreliable (which is sort of a NOGO for a SCM after all (o; ). I used git "in private" on top of the other SCM with a "file based" remote on a network share and only checked in into their SCM after a new version of the product had been released.

10
  • 3
    I cannot open the site from where to download Git. And when installing Visual SVN Server , it fails on the last step with permissions on this PC.
    – Vlad
    Dec 5, 2017 at 12:12
  • 3
    @Vlad is it restricted by your companies firewall? Are you allowed to connect an USB stick? Is this link accessible? github.com/sheabunge/GitPortable/releases/download/… Dec 5, 2017 at 12:24
  • 3
    I am not allowed to insert USB storage devices, apart from charging my smartphone.
    – Vlad
    Dec 5, 2017 at 13:33
  • 19
    Bypassing protections against putting things on the company computer, no matter how reasonable those things are, will get you fired and could possibly even get you in legal trouble. Don't do it! Dec 5, 2017 at 14:25
  • 2
    @Vlad I mean, as a way of accessing the installer for git. as Sebastian Redl says though, do make sure you are allowed to run software on your machine first.
    – Baldrickk
    Dec 5, 2017 at 15:50
8

Your environment

First of all, I would not be so pessimistic like shown in many comments and answers. Yes, this is "stone age", but there are much worse circumstances. If your overall work environment (colleagues, location, pay, interesting programming work etc.) is fine and to your taste, then by all means stick with it. Regarding IT, it is what it is. This does not only happen in government agencies, but also in banking, insurance or wherever there is a very large focus on security, or very old structures.

Inserting an USB stick and running some .exe from there would be immediate cause for termination in other places, so I would not suggest you try to circumvent anything.

Try git once more

Now on your choice. I would strongly recommend git instead of svn for you. If you are doing one-person projects anyways, then git is just a local directory .git inside your application root, nothing else.

Do not ask your boss/IT for an "SCM", but ask them specifically to install git on your machine so you can develop faster and with higher quality. Make it clear to them that you do not wish to push your code to somewhere else, that you do not need a server running somewhere, and that it will not use up significant space or maintenance time.

Git will increase speed and quality for you simply because you can work with more confidence (because you can undo any changes you did) and allow you to work on multiple branches at the same time. I.e., if you are working on a large task, and something comes in that needs your immediate attention, you can just switch to a new branch, quickly fix that, and then return to the long-running task.

Doing it manually

If it just is not possible at all, then of course you can do manual source control. Create manual "tags" by copying your code yourself (maybe create a new directory with the date/time, and a short description of what changed). Keep a Changelog with detailled listings of not only your changes, but also the files you changed, and maybe even more details.

Create "branches" by, again, copying your work, and when it is time to merge back, getting creative using some arbitrary "diff" or "diff3" tools - I don't know if you have any available, you will have to find out.

If all of this costs you a lot of time, then take a good hard look at whether it is really worth it for you to emulate a SCM. If you find that it is worth it, then talk with your boss again. Show him the benefits of your manual SCM (not just "I have a copy of all my old work" but "when bug XYZ happened I was immediately able to find the reason, 5 releases ago"). Then tell them how much faster this would be with git.

Obviously, if this is driving you crazy, looking for a job is always an option.

6

Sell it to them

You left this comment:

They have a network drive which I don't know how but it creates backups in periods. Yes. I use it and I store my apps there.

Go to your superior and say something in this vein:

Boss, I noticed we have a system where we put apps on the network drive and some kind of service makes back ups and keeps track of the history. It seems to me like we're just implementing our own source control system by doing this. We could probably free up a lot of space and make the whole system a lot simpler by switching to a dedicated source control management system, like SVN or git. We'd get plenty of benefits: simpler back ups of historical versions, tools for understanding what changes were made to files over time (very useful info for debugging), easier ways to undo mistakes, and easier ways to combine different people's changes.

I've used these kinds of systems before, and they're very good at the task our custom set up is performing. It's a lot harder to make mistakes with them than it is our current system. They're also very mature and widely used technologies; these tools have been widely used for over 20 years. And on top of that, we can use the most popular software without paying a dime in licensing.

I'd be happy to help picking a client and a server and to set them up. I expect it would only take [insert estimate here] hours to install it if I can get a machine. Any machine would do, even an old desktop about to be retired, as long as we can access it over the network.

The high level summary here is that you need to put it in terms they can understand and are likely to think is worth it:

  • Freeing up resources (hardware and people) for other purposes
  • Lower risk (human error, stable technology)
  • Increased productivity
  • Small cost to implement

Your superiors aren't technical people and they don't care about technical problems. But if you can frame the problem in terms of money and things that cost money, their ears might perk up a little.

5

I think a lot of people here are missing the "government institution" of this question. Some government networks have very strict regulations on software allowed onto them, and breaking those rules are a fireable offence, perhaps even criminal. I'd push it through management to see if you can get some APPROVED movement on getting the software installed. I wouldn't go cowboy and install stuff myself. If you're running Linux/UNIX, see if RCS (ci/co commands) or SCCS (sccs command) are installed. These are old SCM tools that used to be fairly standard. It's not pretty but better than what I'm about to write below. :)

Since you have "lots" of disk space, create a source tree. What are the basics of SCM on a small scale? Being able to check-in changes, look at what's changed, , tag stuff, and go back to old versions if necessary. One level above the source-tree, create a Makefile or scripts, depending on what you have available, that does the following (these are Linux/UNIX flavored, Windows commands would be different)

make checkin - cp -a source-tree source-tree-date (at least to the minute, if not second, such as source-tree-20171205115433)

make status - diff -R source-tree source-tree-date | less (there'd be a little logic here, defaults to the most recent backup or give an argument to diff against a version

make tag - ln -s source-tree-date release1.0 (make a link to a particular version)

make revert - rm -r source-tree && cp -a source-tree-date source-tree

2
  • 1
    Windows commands would be different - I guess if you provide the equivalent in windows commands will be a good answer to the question; I believe the OS used here is windows (because of VS 2005). Dec 5, 2017 at 19:33
  • 1
    FWIW, diff doesn't exist in Windows. The closest thing seems to be fc.exe, which only works on two files (not on directories). All the rest have straightforward counterparts.
    – fede s.
    Dec 6, 2017 at 9:12
2

Well, after reading your question and lots of comments, I understood that you have the following constraints/scenario:

  • 1 person per project;
  • you simply can't use external tools other than Visual Studio 2005 for your project; you can't use GIT or any other SCM;
  • while working locally, you can't let the project in some broken state, because you have automatic backups from time to time, and you need to make it work all the time;
  • you need some history in order to track changes;

If you can't use Visual Source Safe (which has plugin to work with VS 2005), then you could use another approach.

Based on the above items, I suggest you organize your project folders such as below:

trunk           //last functional version of the app. IMPORTANT: YOU DON'T WORK WITH THIS FOLDER
    UnitTests   //important: create unitary tests in order to guarantee stuff is working after changes
    MyClassLibrary1
    MyClassLibrary2
    MyApplication
    Docs
    readme.md
    YouProject.sln
temp              //your working folder; has structure similar to trunk; changes will be commited to trunk;
    UnitTests     //important: create unitary tests in order to guarantee stuff is working after changes
    MyClassLibrary1
    MyClassLibrary2
    MyApplication
    Docs
    readme.md
    YouProject.sln  
build
    .history    //folder to contain changes in files and your comment (like commits in git)
    build.bat   //calls MSBuild to build temp\YourProject.sln, and run all unit tests
    save_on_trunk.bat   //if build is working, saves info from "diff.bat" in folder within ".history" with timestamp, and also overrides "trunk" with content from "temp"
    diff.bat         //compares files from "temp" and "trunk", using "dir" and "fc" commands
    history.bat  //outputs content from .history folder (contains file changes and comments)

Basic rules to follow here:

  • your code control will be performed within the project's folder;
  • you don't ever work in "trunk";
  • you work in "temp", implement unit tests, call build.bat, and then save_on_trunk.bat;
  • IMPORTANT: implement unit tests that run in total isolation; you need this in order to guarantee that new code won't break the trunk;
  • since you have automatic backups, the chances of losing code will be smaller; therefore, you only need to make the "trunk" code to be in a working state all the time.
1
  • 1
    I kindly ask the downvoter to provide some feedback here. I want to improve my answer to a "Maintain code quality without SCM?" question. Dec 7, 2017 at 11:07
1

You have ran out of technical solutions. Only political solutions remain.

1) Unionize the developers. If there is already a union, challenge their position as not fairly representing the class of employee that is a developer. If forming a union of developer fails to gain support of half the developers, GO. You are a bad fit.

2) Newspaper ad. If your government doesn't guarantee free speech as a recognized matter of law, this will get you fired.

4
  • 2
    1) as someone who is an active member in a union, I can tell that the union can do absolutely nothing about that. A unions purpose is to control collective bargaining and ensure that collective agreement is not being violated by the employer. Depending on the employer, you can actually get fired for trying to form a union if the management gets wind of it. 2) Even if the country does guarantee free speech to its people, as an employee you still can't run to the media. You definitely can be fire for this. Dec 8, 2017 at 13:35
  • 1
    This answer is lose, lose situation. Dec 8, 2017 at 13:36
  • @SaggingRufus: Unions can absolutely demand they be provided the right tools for the job. Employee-employer can't go to the media for a private corporation, but a government unit can be held accountable that way.
    – Joshua
    Dec 8, 2017 at 16:20
  • 2
    as someone who works for a union in a tech company, I can assure you, we have absolutely 0 say. Unless it becomes a health and safety issue, the union has no place. I agree with you on some level. If this wasn't softwear "the right tools for the job" portion of the comment would be correct. Let's say for example you are a carpenter in a union and you employer refused to buy you a ladder and said you need to stack 7 chairs on top of each other to climb. THEN you could say it is the employers obligation to provide you with the proper tools. At this point, it has become a safety issue. Dec 11, 2017 at 11:13
0

Just run git over a bare directory, with no server involved at all. It does not matter at all that nobody else uses version control, because you can version control your directory. Git was designed for exactly this rogue SCM introduction scenario, and it works well.

You will become a hero when the second person starts using it, even if you have to wait for some dinosaur to kick the bucket for it to spread. It's incompetence to manage large code bases without SCM now. It's like running a business without auditing anything, actually.

-1

Git for Windows has a "portable" version. You can copy this to your PC, or keep it on a memory stick, without needing to actually install anything. If the problem is simply installation, this would be a workaround.

Do note that if they are flatly opposed to SCM, you may want to ask pointed questions about ISO-9001, DO-178B or other relevant software development standards.

3
  • 1
    this seems to merely repeat points made and explained in this prior answer that was posted over 20 hours ago
    – gnat
    Dec 6, 2017 at 11:53
  • @gnat I didn't see the link there?
    – Graham
    Dec 6, 2017 at 13:30
  • 3
    You could just add your link as a comment to the other answer.
    – icc97
    Dec 6, 2017 at 15:44
-1

There are actually three separate things that you would want to insist on as a professional developer: Code reviews, version history, and tracking change requests.

You can yourself track change requests. Not as nice as with the right tools, but you can. The second part is code reviews. For that, you need the previous copy of your code, and a diff tool. When you think a change is ready, you review it yourself by comparing carefully with the previous version, then replace the previous version with a new one.

For version control, if your workplace doesn't allow any decent solution, it's a box of writable DVDs that you need. Every time you have a version that you want to keep to be able to come back to, you create a new DVD.

(Obviously all of this is not advice that should be taken unless you are in a really bad workplace like the OP apparently is).

Not the answer you're looking for? Browse other questions tagged or ask your own question.