Just solved a nasty problem, a bug that had crept in unnoticed. The last version that worked was about two weeks old, but since then I had made dozens of major changes, and the source is 1000+ lines.
So what helped in the end was MS Word, Tools, Compare and merge documents, plus a lot of boring legwork & trial and error :(
Question: How does your favourite IDE handle such situations? Leave a daily copy on the harddisk? Any good ideas how to manage this process, other than keeping a detailed history file (which is good in theory but...)?
My sources are not big enough to justify Installing Team Foundation Server (http://msdn.microsoft.com/en-us/library/vstudio/dd631902.aspx), I'm afraid ;-)
Jochen,
I know this problem very well. For our fractal image compression codec we had approximately 200 000 lines of code. That's not so much, because the encoder and the decoder are command line programs.
We did it by hand, with a disc history archive with redundancy. We have checked a lot of revision control tools. (https://en.wikipedia.org/wiki/Revision_control) For my taste, this is very awkward, especially if you work alone or in a small team. But what the heck, check it out and let us know the result. Good luck.
Gunther
for a larger source, i found it helpful to split it into several INC files
i still have the main ASM fle - and it includes some of the modifiable constants and the code for WinMain
but, in between those 2 items, there is nothing but a bunch of INCLUDE directives
now, when you modify a segment of code, the date-time stamps on indvdual files have more meaning
09/06/2013 05:23 PM 18,457 ManoScanEMT.asm
09/07/2013 02:35 PM 24,400 00ManoScanEMT.inc
08/30/2013 09:42 PM 25,933 01InitData.inc
09/05/2013 09:47 AM 10,987 02UninitData.inc
09/04/2013 06:19 PM 37,985 03WndProc.inc
09/07/2013 05:27 PM 100,422 04HRProc.inc
09/02/2013 11:00 AM 85,744 05VPProc.inc
09/03/2013 09:33 AM 79,880 06HPProc.inc
08/15/2013 03:48 PM 11,410 07PalProc.inc
07/25/2013 04:21 PM 31,898 08CustBtn.inc
08/31/2013 06:09 PM 91,318 09ToolAProc.inc
06/11/2013 04:12 PM 4,420 10ToolBProc.inc
08/22/2013 09:36 AM 7,837 11ScrollProc.inc
08/01/2013 09:35 AM 4,779 12TrkProc.inc
06/11/2013 04:14 PM 5,639 13TipProc.inc
08/20/2013 06:00 AM 20,670 14CommData.inc
09/05/2013 10:04 AM 45,234 15InitMisc.inc
;###############################################################################################
.DATA
ALIGN 8
;***********************************************************************************************
INCLUDE 01InitData.inc
;###############################################################################################
.DATA?
ALIGN 4
;***********************************************************************************************
INCLUDE 02UninitData.inc
;###############################################################################################
.CODE
;***********************************************************************************************
INCLUDE 03WndProc.inc
;***********************************************************************************************
INCLUDE 04HRProc.inc
;***********************************************************************************************
and so on....
if i want to, i can re-combine them when i am done with the major development
of course - there is always "don't change too many things at once"
if you ever work on electronics prototypes, you will learn that one, quickly :P
Hi Joechen,
I usually use git (http://git-scm.com/) and subversion (http://subversion.tigris.org/).
Both of them works well with Eclipse, our IDE of choice:
http://subclipse.tigris.org/
http://www.eclipse.org/egit/
But for one-man project, I think Fossil (http://www.fossil-scm.org/index.html/doc/tip/www/index.wiki) is more then enough. ;)
Bottom line is probably now we should use version control
instead of the old "tarballs and patches" ;)
Thanks, Gunther, Dave & Anta. Will have to reflect a little bit now ;-)
Hi,
A long time ago, I used source management software at
work to access and modify standard programs we had to use.
(CDC Update.) Worked well, but had a learning curve. Used
it because I had to, give or take. I bought a program that
copied the system we used at work, and may have used it once.
It required too much discipline and time to use it correctly.
Regards,
Steve N.
I use a local git for bc9Basic but I know I am using wrong :)
I create a new branch for almost every change as I could never figure out how to rollback one or more changes?
James
I'm using for local copies - reserve copying utility (http://www.amslook.com/util), that makes timestamp backup catalogues names.
I'm running a subversion server on a linux machine. Whenever I have completed a functionally separate working module, I put it there. This wouldn't help if you do substantial changes, but I don't want to clutter the svn with to many revisions.
Instead of an IDE I use a programming editor (SciTE (http://www.scintilla.org/SciTE.html)), running as many instances as I need. I try to avoid large projects, and seldom work with source files longer that a few hundred lines, so I just manually create backups whenever I feel the need, appending a sequence number to the end of the filename, occasionally with a description. I normally work with my editor(s) on the left side of the desktop and one or more Explorer windows on the right side, so creating a backup is just a matter of editing the name of the current source in Explorer then saving the source in my editor.
PellesC IDE have an option to zip whole project.