RegMerge early discussion

Started by Jeremy Collake, July 25, 2011, 10:03:58 PM

Previous topic - Next topic

Jeremy Collake

I have not had much time away from maintenance of existing products and Support, so haven't been able to finish a simple, but very useful, 100% freeware utility I've been working on. I may make it open source, in fact. I will reveal more very soon. This is just a gift to the community, and I think a gift many users will like.
Software Engineer. Bitsum LLC.

Jude

Whatever it is Jeremy I'm sure it will be something people will need..  :)

Jeremy Collake

I believe this will be a very popular little project. Likely 0 revenue, but popular and useful. I am going to try to finish it on up soon. I've already spilled the beans about it, so it isn't a big secret. I'm taking big strides once in a while. One more stride and it will be out I think.
Software Engineer. Bitsum LLC.

Hotrod

I can't wait!!  ;D I love new toys.  8)

TfH

Quote from: Hotrod on July 30, 2011, 12:43:13 AM
I can't wait!!  ;D I love new toys.  8)
+1

Projext X and Project Y, can't wait to hear more of them :)

Jeremy Collake

Hopefully I will get there soon ;). I'd hate for someone to beat me to the punch. That said, don't get too excited, you'll just end up disappointed ;o.
Software Engineer. Bitsum LLC.

Jeremy Collake

#6
Please see http://www.bitsum.com/regmerge.php for this not-so-new project ;). Yes, I was just finishing an idea I posted about long, long ago. However, it has evolved some since then. I will be uploading the uility (which is already much better than that screenshot) soon. From there, it will be up to the community if they want to start building a REG repair database. Otherwise, it will be useful for DIFF'ing parts of your registry with that of another system, or safely and selectively importing REG files found on the net.

Please do not yet proliferate information about this project, it is in the final phases of being released. I will proof-read, rewrite text, rewrite code, continue testing and polishing the utility -- which still has a bit to go. I am wanting to be done with this tonight though. I can only spend so much time on freeware, though I hope this grows in the future and the community can take over.

Like I said, nothing that exciting since I announced the premise a year or more ago. I feared I got people excited with the mystery, and I do apologize about that. Still, I hope this will be useful to some people, particularly PC technicians and power-users repairing their own registries.

The utility supports FULL types, as you can see -- I'm testing on entire HIVES (hundreds of thousands keys). Most of the time users would use on less extensive data sets.
Software Engineer. Bitsum LLC.

Jude

Congratulations chief this will be an application people need..

Jude

Jeremy Collake

Quote from: Jude on August 05, 2011, 06:47:14 PM
Congratulations chief this will be an application people need..

Thanks, and I hope so. It will be a lot safer than browsing the web, importing random REG files without even checking their contents first... and will come in handy to compare parts of your registry (or the whole thing) with that of another system (say a fresh install in a virtual machine).

Now I just have a bunch of tedious polishing to do on the utility, and more testing. It obviously has to be tested very well, I'm not going to be one of those who causes more damage, lol ;). I *hope* I can get the community involved in submitting REG files to repair various problems, as now they can safely be imported.

Anyway, most importantly, since this is free, I gotta get it done (or mostly done) and move on ... then see where this goes.
Software Engineer. Bitsum LLC.

Jeremy Collake

Another note is that I will likely eventually switch to a TreeListView combination, and filters are also being added when comparing large data sets - such as those presented in the screenshot. I just want to get the basic functionality going, then I can incrementally build over time (as I always do). If I wait until something is done, done, done .. well, that tends to result in vaporware ;)
Software Engineer. Bitsum LLC.

Jeremy Collake

I've polished the UI a little more, but it needs worked on for sure... Still, the basic functionality is about all finished. An early alpha is coming ... much improved since that screenshot. It already passes all tests (successfully loading, parsing, comparing entire registry hives of hundreds of thousands of values of varying types). Again, the typical user isn't going to be dealing with hundreds of thousands of keys, just a handful they can easily read .. this is just for my stress testing and to make sure it handles all data right.

Lingering questions are:

1. Will I include an installer? Probably not, but maybe. Either way, there will be a stand-alone edition as this thing creates no registry keys of its own, nor needs an install -- unless #2 is done.
2. Should associate with .REG files? Maybe an option, but not default. Will have to throw an uninstaller in for this case.

As I said before, I've got to get this done and 'out there' so I can move on. Were it not for me being so cautious, I'd already throw a build out there. I just have to implement proper safety mechanisms since it messes with the registry, and do a good bit of testing prior to even alpha release.

Software Engineer. Bitsum LLC.

Jude

Well Jeremy, I've invited some members from my forum out here to have a look at your project..

http://forum.worldstart.com/showthread.php?p=1612455#post1612455



Jude

Jeremy Collake

Thanks ;). You give me too much credit though, I am merely a humble programmer trying to fill in gaps where I see them.

Guess I better get the download on out today then, eh? ;).

For safety, every change has an undo REG file created. This seemed more precise, reliable, and efficient than creating a restore point for every change that is applied.

I'm about ready... just don't want to be too premature. Should be available today, a few hours from now.
Software Engineer. Bitsum LLC.

Jeremy Collake

I've expanded it also to support loading in as many REG files as you want, as opposed to only supporting one REG file at a time in the initial rendition.

I should have used a high level language to avoid all the mundane details of the code, but oh well .. Getting it there, one mundane function at a time.
Software Engineer. Bitsum LLC.

edkiefer

Hi Jeremy . I am little confused on this .
Isn't the registry keys and all data that is in it according to what OS and what is loaded on system . Isn't it just as bad loading key data that is not used because program or setting in OS is not setup .
Also from my working on manually editing, some places need to be cloned in two area , Hkey_user data .
I guess for OS settings the default data could always be loaded without much harm , if that got screwed up somehow .
From the description in your link it sounds like a winmerge type app for reg .

Ed
Bitsum QA Engineer

Jeremy Collake

#15
Yes, there is no perfect setting for all systems, it varies depending on the Windows OS, applications installed, and more. That is why REG repair sets should always be categorized and sub-categorized. That said, there are more similarities than you might imagine - at least ever since Win9x died, leaving only the NT kernel.

Yes, it is a TERRIBLE idea to just load random REG files from other systems ... which is what people have been BLINDLY doing to try to repair damage for some time. Now they can see what is changing, if anything! So, this is an improvement, SAFER - NOT LESS SAFE. Also, for every 'apply' done there is an undo .REG file created. This will allow changes to be reverted reliably if any problems arise. Not to mention that the user can do their own backup/restore of their hive(s) or select keys.

Anyway, this is no magic bullet to fix all registry problems the world ever had. It is, however, a lot safer than people downloading random REG files on the net and blindly importing them.

Some areas are more OS and environment specific than others. HKCR and shell file association repair, or restore to defaults, is particularly easy and one of the primary targets of the intended REG repair sets I hope the community eventually contributes.

As for HKEY_USERS, no data needs cloned ... That is the base storage for the abstraction of HKEY_CURRENT_USER. Changes to HKEY_CURRENT_USER are automatically propagated into the appropriate location within HKEY_USERS because that is where the actual storage *is*. They can not get 'out of sync'. It is like a symbolic link on a filesystem, if you want to think of it that way. As for propagating user-specific changes to all *other users* on the system, that's beyond the scope and not desired.

It is not as extensive as WinMerge would be, but the concept is similar to any other Diff/Merge type utility.

It is mostly for PC technicians and advanced users. However, if the community puts some effort forth, then REG repair sets can also be useful for end users with no other knowledge. In these cases the trick is categorization to make sure that the REG repair set applies to their system (e.g. it comes from a similar configuration). In that case, that is all they need to know. I had planned to strictly enforce this sort of categorization in some cases, to prevent incidental damage. For instance, using a filename template, do not let users of XP import REG files from Vista -- unless those changes are known to be safe.

Another use is to do a basic 'diff' after running a Registy Cleaner or application install/uninstall -- see what changed, and the cause of possible problems might have erupted. Comparisons like this on the same PC are going to be a big use I believe.
Software Engineer. Bitsum LLC.

Jeremy Collake

Ok, rewrote more .. I hope this explains it now. I appreciate the questions, these sort of things must be cleared up in the description and product page. After all, being a registry tool, the one thing I don't want to see is misuse. It is important people understand exactly what is going on.

You know, thinking about it, you do have a point - Certain areas of the registry I may exclude *entirely* for the safety of the user ... For instance, areas that are too hardware specific to allow for REG repair sets. I do not want to get into hardware subcategorization of the REG repair sets, as that would yield almost infinite subcategories and combinations. However, my original plan was to monitor the REG repair set submissions to make sure that they are kosher with the OS and/or applications they apply to. In most cases they would be repairing lost file associations, or changed system defaults. These really have varied little from 2K->Win7. There is variation though, and also variation between the workstation and server editions. This must be taken into account, for sure.
Software Engineer. Bitsum LLC.

edkiefer

Thanks for more detail .Thats what I meant, it been a while since I have done detailed editing and I just remember some area after editing would copy/sync to other area .
Probably things like file associations in class table for a issue of wrong app open a pic or something (though you can do this else sometimes too ) .
Bitsum QA Engineer

Jeremy Collake

#18
Hope I was done? Sorry for the false alarm. SO close here ... just gotta do testing, a little more work on the UNDO REG files, and a few other chores ... things I feel are important even for this first ALPHA, maybe most important here. Error handling, and display to the user, and such is also a bit slow going.. gotta do it right. Errors will be written to a log file, displayed after completion of the merge.

The good news is that the 'guts' are designed well for future expansion and maintenance. The GUI may need an overhaul, but the guts can remain the same. In fact, many of the 'guts' may come in useful elsewhere. I wonder how much more quickly I could have done this using a RAD language (Rapid Application Development). Oh well .. I'm a C++ guy, what I'm most comfortable in anyway. I do have to start creating stuff that looks a bit more modern though.

Cool Features:


  • Full and complete REG format support with all data types - DONE
  • Undo REG files created for every change - DONE
  • Error log - DONE
  • Support of all data types and extremely large compares/hives - DONE
  • Multi REG imports at once - DONE
  • Drag 'n drop (coming, quick add)


Latest screenshot:



UPDATE: All the basic code is done, took a lot longer than I thought (coding always does ...). More details than you imagine, etc.. Anyway, I just have to debug a couple bugs seen in testing and I will release this build as it is.

UPDATE-2: I am taking a nap, then will quickly debug this last issue and release when I wake up.
Software Engineer. Bitsum LLC.

Jeremy Collake

I am releasing now to the brave ..  I am going to upload 32-bit and 64-bit builds.

It will take just a few minutes to finish the packaging and automated upload script.
Software Engineer. Bitsum LLC.

Jeremy Collake

CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION CAUTION

This is an early alpha that has not been fully tested at all. Its purpose is further testing to discover bugs and continue the refinement process. Do not use unless you are prepared to have registry damage (assuming the worst). Backup your registry hives/keys using regedit's 'Export' function and create a system restore point before using this software.

It has NOT been tested in Windows 2000 or Windows XP. I have only tested it in Windows 7 x64 at this time. It is literally fresh off the assembly line. To avoid any issues with WOW64 Registry Redirection, I've decided to issue a 32-bit and 64-bit build.

32-bit: http://www.bitsum.com/files/alpha/regmerge32.zip
64-bit: http://www.bitsum.com/files/alpha/regmerge64.zip

Again, use with extreme caution. Testing only.

Now, let us hope it isn't too bad. It seems to generally function well, but I have NOT YET TESTED EXTENSIVELY. I haven't even tested the UNDO files hardly at all, they may be completely messed up -- so again, use with caution. I wanted to release this, as I have to move on.  I will CONTINUE WORKING on this, improving and fixing any outstanding issues ASAP. For the time being, back to Process Lasso and PECompact ;o.
Software Engineer. Bitsum LLC.

Jeremy Collake

Reader note: To create .REG files for backups or comparison, use Window's RegEdit utility (RegEdit.exe). Simply select a key, right-click it and select 'Export'. This will create a .REG file.
Software Engineer. Bitsum LLC.