Programmer's File Editor With Change Tracking? 286
passionfingers writes "My business users regularly have to tweak large (>32MB text) data files manually. Overlords charged with verifying the aforementioned changes have requested that the little people be provided with a new file editor that will track changes made to a file (as a word processor does). I have scouted around online for such an animal, but to no avail — even commercial offerings like UltraEdit32 don't offer such a feature. Likewise on the OSS side of the fence, where I expected a Notepad++ plugin or the like, it appears that the requirements to a) open a file containing a large volume of text data and b) track changes to the data, are mutually exclusive. Does anyone in the Slashdot community already have such a beast in their menagerie? Perhaps there is there a commercial offering I've missed, or could someone possibly point me to their favorite (stable) OSS project that might measure up?"
vi/emacs/eclipse/whatever + svn? (Score:5, Insightful)
Emacs - ~/.saves directory (Score:5, Informative)
Re: (Score:2)
Re: (Score:2, Informative)
rent a geek (Score:5, Insightful)
1) Obviously never heard of version control like (CVS, SVN, etc.). This is excusable, as setting up and keeping with your very own SVN repo isn't the top of people's lists, and it's entirely possible to not have heard of such a beast.
2) Accepting the commandment of "thou shalt manually wade through gobs of data in a text file means he's no programmer. This is also perfectly fine, but means he's not the right person to be changing this file anyway.
3) Is under the impression that revision history could conceivably be hidden within said plain text file, implying the OP doesn't understand basic file formats, which confirms that he is not merely the wrong person but absolutely the last person you want manually mucking with your data files.
Therefore...
My suggestion: Forward the request to your IT department (or rent a geek).
Re: (Score:2)
Re: (Score:3, Funny)
Revision history can't be hidden within a plain text file?
Re: (Score:3, Informative)
But that only works if the file format supports comments.
Re: (Score:3, Informative)
Storing version information in a complimentary file is the very basic description of what version control systems do.
Give your users an editor with WebDav support and make them edit the files directly in the SVN repository using a HTTP WebDav repository feature of SVN.
Version control (Score:5, Insightful)
You don't solve that by changing editors. You solve that by standardizing on a version control system and using it. For example, you could stick a Subversion server somehwere on your network, then install TortoiseSVN on your client machines. When you edit the file, you commit it with a log message of why you made the changes.
This is infinitely preferable to forcing all of your developers to use one specific editor (which is the universal holy war among programmers), when all of them will be half-assed at best when compared to real version control.
Re:Version control (Score:5, Informative)
Re: (Score:2)
Yeah, I just don't think a 32 meg file in netbeans with svn and the change tracking in the margin will be a very efficient way of editing the file though, considering these features in most such IDEs tend to start choking after a few hundred kilobytes.
Re:Version control (Score:5, Funny)
You must switch to version control, urgently! [thedailywtf.com]
Re: (Score:2)
I read the link, and got the joke, but I am out of mod points...
Here's a virtual +5 funny.
Re: (Score:2)
I didn't get the impression that most of the users were to be programmers, and apparently he was explicitly instructed to find a text editor with version tracking. Naturally that's basically impossible.
What would probably be acceptable, if it could be found, would be a programmer's editor that had it's own file format which kept track of changes, and a *really good* export feature which turned the current version into export text (in your choice of ASCII, UTF-8,-16, or -32).
Version control is a good choice
Re: (Score:2)
Re:Real version control (Score:5, Insightful)
It's not quite as straightforward as that [kerneltrap.org], but there's a valid objection there, and I take the point.
Of course, the real problem is the idea that users manually editing a 32MB file on a regular basis is at all a sensible idea.
Re:Real version control (Score:5, Insightful)
It's not "unusual", it's simply nonsense.
If your business process requires non-techie users to edit and share 32M-sized textfiles regularly then your business process is broken. The whole approach is broken beyond repair, the obvious solution would be to build some kind of frontend for the users.
Re: (Score:2)
Re: (Score:2, Informative)
Actually, it only appears to keep a full copy for the most recent versions, and repacking the repository ('git gc') will delta-encode everything as necessary. At least, that's how I understand the way it's described on the git wiki: http://git.or.cz/gitwiki/Git?highlight=(delta) [git.or.cz]|(compress)
Re: (Score:2)
It's not automatic but yes. Everything that is commited is merely zipped and stashed away (which yields good performance) until you manually go a git gc.
The reason, I believe is that an operation that takes an instant could take a few seconds if it were to always repack. Using git, you get the habit of typing git gc at the command line when idle just like you get the habit of ctrl-s (or your editor's equivalent) all the time when you are idle when typing something.
Once repacked, git is the most space-effici
Re: (Score:3, Interesting)
When I was young, we used RCS and we liked it! As the state of the art changes, so do the requirements to stay at the top. It's possible that SVN 1.5 qualifies as real version control by modern standards - I'll find out when it reaches my somewhat conservative distro - but previous versions have poor support for merging.
I'm also rather unhappy at SVN this week because it managed to get itself in a horribly confused state in which it told me I needed to run svn cleanup to fix some locks, but running svn clea
source control? (Score:2, Insightful)
diff -Nrau (Score:5, Informative)
CVS/SVN? (Score:5, Informative)
SCiTE [scintilla.org]
SCiTE for AutoIT [autoitscript.com] with screenshots
CVS/SVN wrapper for SCiTE [autoitscript.com] with screenshots and instructions
Jonah HEX
Re: (Score:2)
SCiTE
I've also used Scite for AutoIt and it does work very well, but in general Scite is a royal PITA to configure. If you want to change text styles or colors you have to wade through several mountains of configuration files, hunting for just the right line to change, restart the editor and hope you picked the right place to edit.
For Windows users, Notepad++ [sourceforge.net] is a much better solution. It uses the Scintilla editor engine so it has the same capabilities as Scite, but the configuration is all done through a
Custom tool (Score:3, Interesting)
In addition to joining the chorus that will suggest you use version control, I'll put in a suggestion to write a custom tool to view and make specific changes to the file. Multiple users editing *data* files by hand, with no validation, is silly.
change the process (Score:5, Insightful)
if your business users have to edit 32MB text files by hand, someone is a moron.
Someone didn't know what they were doing in the first place.
Change the process to make sense.
Perhaps those "files" should actually be in a database. SQL makes automatic manipulation quite easy.
Re:change the process (Score:5, Insightful)
Perhaps those "files" should actually be in a database. SQL makes automatic manipulation quite easy.
Exactly. That also makes it easy to build a change audit logging table.
Re: (Score:2)
You still need to track changes in the file, so you may as well stick it somewhere. In the DB as a text field isn't a great idea, but it would be better than "We're just winging it" is.
Re:change the process (Score:5, Funny)
come to think of it, it sounds like you're asking us how to best manage spam hit lists.
Re: (Score:3, Insightful)
Thats silly. Spammers don't edit their lists. They just blast it out to all, valid or fake.
Re: (Score:2, Insightful)
Agreed. Fix the real problem, which is "Having to hand-edit a 32 MB text file in the first place."
Re: (Score:3, Interesting)
Which brings up the issue of changing this "process." Have you worked in a fast paced environment with limited resoures? Processes don't just chang
Re: (Score:3, Informative)
Sounds like they're in a non-sustainable environment. Once they run off the rails, or someone gets sick, or someone puts a comma where they shouldn't, the whole house of cards comes crashing down.
Risk management via creating space to improve the process is surely a better option than that, right?
Re: (Score:2, Insightful)
Yes, CVS/SVN/whatever is a good technical answer to a bad requirement. You probably cannot change anything at the requirement level, however, so your best bet would be to report your findings in a very technical and neutral way... And, as a side note or even a line in the corporate summary, just point out the deficiencies in the process and possible solutions if you can imagine straigthforward ones, leaving options open. BTW, the word "risks" has magical powers.
Source Control (Score:5, Insightful)
Re: (Score:2)
diff (Score:5, Funny)
I just wrote one for you, and it is even using your favorite editor:
cp $1 $1.bak
`$EDITOR $1`
diff $1.bak $1
Re:RCS (Score:3, Insightful)
And here's one that will track previous changes as well as well as preventing edits by two people at once...
$ cat edit.sh
#!/bin/sh
co -l $1
$EDITOR $1
ci $1
co $1
Wiki? (Score:4, Interesting)
Sounds like Wiki may be the best... It is easy enough to split the document into sections, which can be edited concurrently. It keeps the history available. And the format is (almost) text.
Pick MediaWiki [mediawiki.org] (the same software, that powers WikiPedia) or any other implementation (some may be easier to operate on a small LAN, and/or be able to export pure text, etc.)
Re: (Score:2, Insightful)
Did you ever open a 32mb text file in a browser?
Or edit it in a textbox inside a browser?
(Even if you split it in sections of, say, 1mb, it's still not gonna work comfortably. And then we're not even talking about reassembling the pieces to get the original big file.)
And, like someone else said, if you need to start tweaking text files bigger than 32mb, then something in your business processes is wrong.
Re: (Score:2)
Simple, switch to VMS! (Score:5, Insightful)
Re: (Score:2)
Of my limited 1 year of pain with VMS back in the 90s (the software got ported to Linux shortly after), I think the file versioning was awesome.
We had a custom DIR alias to only show the current version, and custom purge scripts to keep the directories from becoming unwieldy.
Re:Simple, switch to VMS! (Score:5, Informative)
If the users are using Linux, there is also ext3cow, which was discussed on /. (http://linux.slashdot.org/article.pl?sid=07/05/02/0413253&from=rss), the newly announced Tux3 (http://lkml.org/lkml/2008/7/23/257), Wayback (http://wayback.sourceforge.net/) and others.
Re: (Score:2)
Unisys OS2200 is better -- it supports file and directory "cycling" which is roughly similar to versioning, but you can also use a directory file ("program file") to store files ("elements") that are never actually delated (only marked as such) until the directory is packed. That means you can have dozens of older versions saved, but they don't clutter up your directory displays unless you choose to see them. :-)
Um, Eclipse? (Score:5, Informative)
I seem to recall Eclipse saves your edit history
That's the file system's job (Score:2)
http://plan9.bell-labs.com/magic/man2html/1/yesterday [bell-labs.com]
Your editor of choice + svn + scripts (Score:2)
I think tracking changes should not be the job of the editor, but of something else that is good at it, like svn. I would let people use the editor they like, and add this [diffuse.it] script on their local machine to track changes. They can then commit the changes to the svn server and the Overlords can check out the changes (or any revision of them) from the main repo.
Does the file format support it? (Score:5, Insightful)
a new file editor that will track changes made to a file (as a word processor does)
A large part of the 'as a word processor does' feature is that the file format itself supports it - all the changes are saved right along side each other and the word processor picks and chooses what to display to you at any particular point in time. If your file format does not support change tracking, you need to look at external change tracking solutions such as SVN/CVS or something on the file system level.
Editor with hooks to Source Control (Score:2)
I use to use CodeWright for this.
MS Visual Studio does this at work.
Notepad++ does this for free at home.
emacs will have a plugin (Score:2)
It always does, for everything.
Re: (Score:2)
Emacs VC mode... (Score:2)
...supports six different version control systems. It is enabled by default. Read the manual.
SubEthaEdit might be the tool for this (Score:2)
Basically, it's a realtime distributed editor, but has a native format that saves who authored what. Works really well.
http://www.codingmonkeys.de/subethaedit/ [codingmonkeys.de]
Re: (Score:2)
aboiut change tracking (Score:2)
track changes made to a file (as a word processor does)
A word processor (or other office application) can track changes because the format of the file is specifically designed to allow such tracking. You data files, which you imply are text, are just data. Unlike a word processing document file, the editor is showing you everything in the file - there is nothing in the file to provide for change tracking.
Of course, the file format could be enhanced, but then everything that uses the data files would need to be changed.
As suggested elsewhere, your best bet is to
Eclipse (Score:2)
Eclipse offers such a feature, but I need to ask what format is this 32MB file you are meant to be editing?
try SlickEdit (Score:2, Informative)
Not enough info to give an authorative answer (Score:2)
Is it straight text? If so, does it have to remain straight text?
Do the overlords want to be able to identify who made the changes, or just verify the changes were made and made correctly?
Is there a reason the data is not in a DB, etc?
Different answers result in different solutions.
Geany + SVN, CVS or even RCS (Score:2)
Fix The Bug In The Overlords Heads (Score:5, Insightful)
Overlords charged with verifying the aforementioned changes have requested that the little people be provided with a new file editor that will track changes made to a file (as a word processor does).
Apparently your Overlords' heads have some fault code and need to be debugged.
Revision tracking is accomplished with revision tracking software.
You may think it is easier to just do what they are telling you to do, but in the long run it is not. They need to understand the difference between editing and revision tracking. If they do not, they will not be getting what they are looking for.
There are a variety of methods for tracking revisions, from diff files to Subversion. Word processors store delta histories in the document, which is a poor place to store such things because it is insecure and liable to corruption.
Then again, if you're doing hand edits to 32M text files, you probably are working in a company with less comprehension of information science than the City of San Francisco [slashdot.org] (alas, my beloved home city, but boy do they have their heads up their nether regions).
Seriously - you may not like this answer, but it is the only correct one. Fix their understanding of revision tracking.
Microsoft Word! (Score:2)
Keep your master copy in Microsoft Word with its Change Tracking turned on, then export it to .txt every time you save it. LOL. Perfect!
More Details Please (Score:2, Insightful)
diff (Score:3, Insightful)
WinMerge or Meld (Score:2)
One place I worked, the lead developer was paranoid and liked to review and understand every change I made to the code before "committing" it to his own tree. (Yeah they didn't use source control much either. Very stupid...) So we got really good at using WinMerge [sourceforge.net]. It has good keyboard shortcuts that let you step through the diffs between two files, one at a time, and merge them from one to the other.
On Linux, meld [sourceforge.net] is comparable (except the keyboard shortcuts are inferior, IMO, but you can probably chan
Re: (Score:2)
WinMerge works under wine (version 2.4.x and 2.8.x at least, 2.6 didn't), and is actually my preferred merge utility under Linux.
"e" (Score:2)
The best text editor I've sen for tracking changes has to be e text editor [e-texteditor.com]. I don't know if it's exactly what you want, but I think there's a demo so you can check it out. It falls down with 700MB files, but might do okay with 32.
Meld (Score:2)
I'll add my voice to everyone suggesting that you use a revision control system.
Meld is a useful tool that lets you view diffs visually http://meld.sourceforge.net/ [sourceforge.net]. You can either ask it to diff two files or directories, or use the built-in subversion support. It shows the two versions of files side-by-side and highlights where stuff was added/deleted/modified.
Existence proof: IntelliJ IDEA (Score:2)
Re:AskSlashdot: "Please Do My Work For Me" (Score:5, Insightful)
Many of the Slashdotters actually pay for the opportunity to, among other things, answer questions like that. If you do not derive satisfaction from doing it, just step aside, no one is forcing you to post.
That's not fair (Score:5, Insightful)
A company isn't concerned with how you find the answer (provided you come by it legally), they just want an answer as soon as possible. The faster, the cheaper the solution man-hours-wise.
I wouldn't be surprised if you've posted for help on an online forum or asked a friend for help with something. It's no different. It's all part of research.
Re: (Score:2)
Re:That's not fair (Score:5, Funny)
their domain name used to be "expertsexchange.com".
Then one day that address suddenly redirected to "experts-exchange.com" You could almost feel the webmasters smacking themselves in the forehead.
Re:That's not fair (Score:5, Funny)
Re:That's not fair (Score:4, Funny)
http://burntherapist.com/ [burntherapist.com]
Re:That's not fair (Score:5, Funny)
Re:That's not fair (Score:4, Funny)
Neither did the URL for the Italian branch of a multinational energy company: "PowerGen Italia"...
Re: (Score:2)
You can get free access by looking at the cached version using google.
Re: (Score:2, Informative)
They've become slightly more tricky about it now. It uses Javascript to hide all the comments so even the cached copy doesn't work. Unless you use NoScript of course :).
I'm not sure this would be a good idea but Google could offer a service where webmasters can register a key with their domains and then when the Google crawler comes along it could sign something with that key to ask for "protected" content. That way services you have to sign up for could still be indexed. Assuming you're willing to hand all
Re: (Score:3, Insightful)
Re:That's not fair (Score:4, Informative)
Re: (Score:3, Informative)
They show up fine for me, just keep scrolling down. When I land on one of their pages from a google search, I see all of their gibberish posts but underneath all that, way down the page, I see the full text answers.
Re: (Score:3, Informative)
I've never had to turn off cookies or anything to view answers on Experts Exchange. Just scroll down past the masked answers and past all the categories: lo and behold, all of the answers are there in plain sight! This is the case for Firefox, at least.
Re: (Score:2)
Ask Google, then ask Slashdot (Score:3, Insightful)
When I can't find anything via Google, where then do you turn?
You could ask Slashdot or some other forum, but provide an example of a Google query that you thought was promising but didn't turn up anything relevant. This way, others can see that you at least tried, and people can use why the queries didn't work as a starting point for conversation.
Re: (Score:3, Informative)
He points out that he has had a look himself, but he doesn't seem to have heard of version tracking software, or cpmsoders it overly complex for their needs. Personally I've never used any myself, but it sounds about right for this type of task.
Re:AskSlashdot: "Please Do My Work For Me" (Score:4, Funny)
> cpmsoders
I think you need to move your keyboard about this much (___) to the left. The scary thing is it made perfect sense!
Re: (Score:3, Funny)
Oops! That's quite imcjaracjterostoc of me... my apologies.
Re: (Score:3, Interesting)
"not to sound like a..." TOO LATE!
Why complain? Too many people on slashdot are whiners! If you don't want to help, don't respond! That is the beauty of "open source". Help if you want or don't.
I have been programming for over 30 years and am considered a guru by my peers. But I know my limitations. For example I would not touch a SAP project with out help, because I have no experience.
Maybe the solution for everyone, is to have a category for "I need help" that people like you can tell slashdot not to show
It's Free and Open Tech Support (Score:2)
Using free software written by someone else is not the only way to take advantage of the community knowledge base.
Come on man, get with the program. Everyone contributes, debugs, tweaks, uses.
Re: (Score:2)
This isn't school and it's not cheating to copy. If somebody is willing to answer the question, then the OP has just found a cost-effective means of doing his job (mind you, part of his job will be to vet the answer against reality and common sense).
Re: (Score:2, Insightful)
Oh, and unless you invented source control and diffs, or stumbled upon them in some lost dungeon, you probably found out about them by asking people too, meaning you're just as "bad" as him.
AskSlashdot: "Please Don't Do My Work For Me" (Score:2)
I'd "Ask Slashdot" but I am skeptical that people would come up with workable solutions. (I don't trust the idiot mob on here)
Re: (Score:2, Insightful)
Mod the parent up, please. He's not flame baiting and he's no trolling. It's a legitimate post.
We see too many of these types of questions on Slashdot these days. While I also don't mind helping others, I would like to see less people asking how to do their jobs and more articles that give me good or interesting information instead.
It's still good to have questions asked, but they should be challenging and puzzling. Simple questions like this do not even merit interesting responses in the comments. The
Re: (Score:3, Funny)
Re: (Score:2)
he may have difficulty getting another one if he doesn't know what svn is.
Re: (Score:2)
UE Studio Tour: CVS/SVN [ultraedit.com]
Jonah HEX
Re: (Score:2)
It makes a good story when someone who doesn't do any research asks Slashdot readers to do the research for them. Stuff like asking if there is a PDF reader that isn't created by Adobe, or if there is an alternative to Windows that runs Unix code, or even if there is an open source alternative to Photoshop, usually are good submissions to Slashdot on a slow news day. :)