Slashdot Mirror


Programmer's File Editor With Change Tracking?

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?"

60 of 286 comments (clear)

  1. vi/emacs/eclipse/whatever + svn? by FooAtWFU · · Score: 4, Insightful

    In the open-source world you edit your text file, finish for a bit, save it, and check it back into your favorite form of source control. You can then look at the diffs between various revisions.

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
    1. Re:vi/emacs/eclipse/whatever + svn? by dthrall · · Score: 2, Informative

      No offense, but using a java ide to edit text files doesn't seem like the most efficient way to do things, especially dealing with 32mb files (I find most of the java-based ide's i've used tend to choke on large files... Sure, the diff viewer is part of the whole bundle, but for the subversion functionality, TortoiseSVN is a decent windows client, as it sounds like the person inquiring is a more non-technical user. Of course, I'm not sure if you actually mean a true OSS way of doing this, or if you're just looking for a free way to do so...

  2. Version control by Just+Some+Guy · · 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.

    --
    Dewey, what part of this looks like authorities should be involved?
    1. Re:Version control by Shaitan+Apistos · · Score: 5, Informative

      Some editors, netbeans for example, even have visual cues in the margin indicating what you've changed from the svn revision you've checked out since your last commit.

    2. Re:Version control by markov_chain · · Score: 5, Funny

      You must switch to version control, urgently!

      --
      Tsunami -- You can't bring a good wave down!
  3. source control? by MariusBoo · · Score: 2, Insightful

    Are the overlords retarded? Just use source control (svn?). "Track changes" is evil.

  4. diff -Nrau by red_dragon · · Score: 4, Informative

    What's so bad about diff that you're not using it already? Certainly it would be a better choice for dealing with multiple text files: make a working copy (which can be an entire directory tree), do your changes on the working copy, and then run diff against the original and working copies. And I bet that there's an Emacs mode for that too.

    --
    In Soviet Russia, Jesus asks: "What Would You Do?"
  5. CVS/SVN? by Jonah+Hex · · Score: 5, Informative

    I understand you want an all-in-one, however I believe that most "programming" editors can hook into some sort of change management program. I use one locally with my AutoIT3 scripts and the SCiTE editor, every time I compile it asks me for a "changes/reason" and enters that into my own local source management.

    SCiTE

    SCiTE for AutoIT with screenshots

    CVS/SVN wrapper for SCiTE with screenshots and instructions

    Jonah HEX

  6. Custom tool by CaseyB · · Score: 2, 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.

  7. change the process by DragonTHC · · 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.

    --
    They're using their grammar skills there.
    1. Re:change the process by blincoln · · 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.

      --
      "...always new atoms but always doing the same dance, remembering what the dance was yesterday." -Richard Feynman
    2. Re:change the process by DragonTHC · · Score: 4, Funny

      come to think of it, it sounds like you're asking us how to best manage spam hit lists.

      --
      They're using their grammar skills there.
    3. Re:change the process by cstdenis · · Score: 2, Insightful

      Thats silly. Spammers don't edit their lists. They just blast it out to all, valid or fake.

      --
      1984 was not supposed to be an instruction manual.
    4. Re:change the process by Anonymous Coward · · Score: 2, Insightful

      Agreed. Fix the real problem, which is "Having to hand-edit a 32 MB text file in the first place."

    5. Re:change the process by qoncept · · Score: 2, Interesting

      That's a pretty short-sighted comment. It's very easy to end up doing something that outwardly looks totally foolish. Maybe these files started out about 4kb (and as I imagine this example, I'm remembering when it happened in my project) and unforseen changes caused it to gradually grow to 32mb. Hand editing from the beginning wasn't a big deal, but now it is.

      Which brings up the issue of changing this "process." Have you worked in a fast paced environment with limited resoures? Processes don't just change. Projects just like this are thought up, planned, and indefinately postponed because they don't have extra resources to devote to the two months it would take to rewrite the process, allocate hardware, set up a database, migrate the data, train the users, test, install client software and so on.

      --
      Whale
    6. Re:change the process by jzu · · 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.

    7. Re:change the process by Baddas · · Score: 2, 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?

  8. Source Control by Imagix · · Score: 5, Insightful

    I'll echo the same sentiments as everybody else... use source control. In addition, you're asking for the impossible. Word Processors can do "change tracking" within a file because the file contains more stuff than simply the text that you type in. Based on your description, the file you're talking about is simple text data, and has no provisions for storing "previous versions" directly within the text file. Where were you expecting this additional information to reside? And if it's in the same file, you would also have to change whatever tools you're using to process that file to be aware of all of this new (and to that tool, useless) information within the file.

  9. diff by Anonymous Coward · · 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

  10. Re:AskSlashdot: "Please Do My Work For Me" by Yurka · · Score: 4, 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.

    --
    I can assure you, the best way to get rid of dragons is to have one of your own.
  11. Wiki? by mi · · Score: 3, 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 (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.)

    --
    In Soviet Washington the swamp drains you.
    1. Re:Wiki? by Anonymous Coward · · 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.

  12. That's not fair by Scotteh · · Score: 5, Insightful

    When you don't know how to do something, where do you go? I usually got to Google first and look around. Sometimes I find something, sometimes I don't. When I can't find anything via Google, where then do you turn? A co-worker? A friend? Maybe an online community of people who would know? The latter sounds like the most promising to me.

    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.

    1. Re:That's not fair by spazdor · · 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.

      --
      DRM: Terminator crops for your mind!
    2. Re:That's not fair by didroe84 · · 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 your data over to Google of course, but nobody seems to have a problem with that at the moment.

    3. Re:That's not fair by FiloEleven · · Score: 2, 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.

    4. Re:That's not fair by wilder_card · · Score: 5, Funny

      I've got a list of "worst URLS" around somewhere that's got expertsexchange.com on it. Other memorable entries included an artist's site, speedofart.com, and the Mole Station Nursery, a wildlife non-profit, at molestationnursery.com.

    5. Re:That's not fair by spazdor · · Score: 3, Funny
      --
      DRM: Terminator crops for your mind!
    6. Re:That's not fair by A440Hz · · Score: 5, Funny

      Don't forget-- the company Pen Island decided to use their name (without dashes) as their URL. Capitalization being rare in URLs, it didn't work so well.

    7. Re:That's not fair by hotdiggitydawg · · Score: 3, Funny

      Neither did the URL for the Italian branch of a multinational energy company: "PowerGen Italia"...

    8. Re:That's not fair by Fez · · Score: 2, 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.

    9. Re:That's not fair by $1uck · · Score: 2, Insightful

      Bad Idea... I don't think google or any search engine should index things that aren't public. I think its retarded the way the search engine will point you to something you can't see or use w/o signing up. Really I wish google didn't index expert sex change. Its just more noise in the results.

    10. Re:That's not fair by Oroki · · Score: 4, Informative

      Just scroll to the bottom of the page; all the answers are there.

  13. Simple, switch to VMS! by antifoidulus · · Score: 5, Insightful

    Automatic file versioning built right into the file system! Problem solved! Next!

    1. Re:Simple, switch to VMS! by UnderCoverPenguin · · Score: 4, 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.

      --
      Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
  14. Re:AskSlashdot: "Please Do My Work For Me" by somersault · · Score: 2, 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.

    --
    which is totally what she said
  15. Re:AskSlashdot: "Please Do My Work For Me" by jimwelch · · Score: 2, 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 on your home page.

    For those who are not observant: this comment is recursive and sarcastic.

    --
    Never trust a man wearing a coat and tie!
  16. Um, Eclipse? by Progman3K · · Score: 5, Informative

    I seem to recall Eclipse saves your edit history

    --
    I don't know the meaning of the word 'don't' - J
  17. Does the file format support it? by Richard_at_work · · Score: 4, 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.

  18. Re:AskSlashdot: "Please Do My Work For Me" by Anonymous Coward · · 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!

  19. try SlickEdit by davido42 · · Score: 2, Informative

    I believe SlickEdit now supports change tracking directly. Not sure how well it works with plain text data files, but it is supported on several platforms, has hooks for version control integration, and so on.

    --

    BitWorksMusic.com -- odd tunes for odd times

  20. Re:Real version control by pjt33 · · Score: 4, Insightful

    It's not quite as straightforward as that, 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.

  21. Ask Google, then ask Slashdot by tepples · · Score: 2, 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.

  22. Fix The Bug In The Overlords Heads by Bob9113 · · Score: 4, 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 (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.

  23. Re:AskSlashdot: "Please Do My Work For Me" by somersault · · Score: 2, Funny

    Oops! That's quite imcjaracjterostoc of me... my apologies.

    --
    which is totally what she said
  24. Re:Real version control by pjt33 · · Score: 2, 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 cleanup just got me an error message saying that I needed to run svn cleanup to fix the locks. I ended up having to delete and do a clean checkout, and was not impressed.

    As to the accusations of Linus fanboydom (yours is the second), the only reason I mentioned git is that I used it in my previous job and it worked well. I could equally have said Mercurial or BitKeeper, but since I have no experience with those I can't really recommend them.

  25. Re:AskSlashdot: "Please Do My Work For Me" by JakeD409 · · Score: 2, Insightful

    If his job involves finding solutions, then that's just it: he needs to find solutions. He doesn't need to INVENT them.

    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.

  26. More Details Please by answerer · · Score: 2, Insightful

    I'm guessing the point of having change tracking is so that the Overlord can review and approve the changes. In that case, maybe UltraCompare(http://www.ultraedit.com/products/ultracompare.html) is what you're looking for?

  27. diff by slashflood · · Score: 2, Insightful

    Keep a copy of the original file and make a diff. Am I missing something?

  28. Emacs - ~/.saves directory by JBrow · · Score: 5, Informative
    Aside from using version control, I also have Emacs set up with an extensive save history. My settings are:

    ; backup
    (setq make-backup-files t)
    (setq
    backup-by-copying t
    backup-directory-alist '(("." . "~/.saves"))
    delete-old-versions t
    kept-new-versions 6
    kept-old-versions 2
    version-control t)

    --
    --- You are in a little twisty maze of comments, all different.
  29. Re:AskSlashdot: "Please Do My Work For Me" by ianare · · Score: 2, Funny

    well considering many of us here are at work, we are getting paid for it.

  30. Re:Real version control by Dragonmaster+Lou · · 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)|(compress)

  31. Re:RCS by SiliconSlick · · 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

  32. rent a geek by gabec · · Score: 5, Insightful
    The OP has a lot of things working against him:

    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).

    1. Re:rent a geek by Hotawa+Hawk-eye · · Score: 2, Funny

      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.

      Revision history can't be hidden within a plain text file?

      \documentclass{article}
      \begin{document}
      This is a \LaTeX document. It can have comments in it.
      % Here is a comment that will not be present in the LaTeX document output. The revision history could be stored here.
      \end{document}

    2. Re:rent a geek by Chuckstar · · Score: 2, Informative

      But that only works if the file format supports comments.

    3. Re:rent a geek by AigariusDebian · · Score: 2, 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.

  33. Re:AskSlashdot: "Please Do My Work For Me" by tickticker · · Score: 2, Funny

    Then don't post, oh phallic one

  34. Nah... by wondershit · · Score: 2, Funny

    ...a shingle is just fine.

  35. Re:Real version control by Kent+Recal · · Score: 4, 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.