Контроль версий - нетривиальная проблема. Это было решено множеством способов, но переделывать его правильно - далеко не тривиально. Эрик Синк пишет очень хороший блог о разработке своего собственного программного обеспечения для управления версиями, которое дает небольшое представление о сложности
Вашей конкретной проблемой будет объем данных, так как многие из ваших файлов будут двоичными, которые не будут так эффективно храниться в системах VC, так как они предназначены главным образом для работы с текстом. Очень быстро, если у вас нет очень хорошего механизма сравнения, у вас будет слишком много данных для работы.
Мое предложение состояло бы в том, чтобы сконцентрироваться на взаимодействии вашего программного обеспечения с чем-то, где кто-то уже проделал тяжелую работу, таким как Subversion, Git, Mercurial или одним из других превосходных доступных инструментов контроля версий. Вы можете использовать их в качестве хранилища для хранения и создания версий всех файлов, а также для сборки своего программного обеспечения, чтобы иметь смысл всего этого.
Чтобы построить эффективную систему контроля версий, вам нужно точно знать, что вы делаете, почему бы не использовать повторно то, что создали эксперты.
Если вы все еще хотите сделать это самостоятельно, вы могли бы сделать хуже, чем Эрик Синкс, Руководство по управлению исходным кодом