[.NET] Vind gelijkende bestanden

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 00:33

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Ik heb een codebase met ascx en cs-bestanden waar redelijk wat redundantie in zit, oa door flink wat copy-pastewerk. Het gevolg is dat er een heleboel bestanden op elkaar lijken, maar er toch minimale verschillen zijn.

Nu was mijn idee om een diff van die code-directory te doen met zichzelf om een lijst op te stellen met bestanden die erg op elkaar lijken. Aan de hand van die lijst kan ik gemakkelijker refactorings doorvoeren.

Uiteraard wil ik aan het detecteren van gelijkende bestanden zo min mogelijk tijd besteden (bv: niet zelf diff-algoritme implementeren etc.), maar ik voorzie toch dat ik wat zal moeten programmeren (batch, c#, xslt, ... whatever).

Ik dacht dus aan het doorlopen van een matrix die gewoon de hele directorystructuur tegen zichzelf difft, en de laagste diffs bijhoudt. Heeft iemand een tip voor een diff-library die me hierbij kan helpen? Of misschien een nog betere oplossing voor mijn probleem?

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

GNU diff zal wel vrijelijk beschikbaar zijn denk ik ?

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • dotcode
  • Registratie: Augustus 2003
  • Laatst online: 23-09 08:42

dotcode

///\00/\\

Simian is een tool die gelijke stukken code voor je opzoekt:

http://www.redhillconsult...ucts/simian/overview.html

Je kan mooie raporten genereren.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23-09 20:04

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 00:33

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
Simian lijkt inderdaad in de buurt te komen. Daar ga ik alvast mee stoeien.

Wat betreft de gnu tools: voor zover ik kan zien, is het niet mogelijk om een soort hash te generen die aangeeft "hoeveel" de bestanden van elkaar verschillen. Maw, ik moet zelf een bepaald outputformaat kiezen, en daar een hash van berekenen, zodat ik kan zien welk bestand het minste verschilt van het bronbestand.

Misschien denk ik wel te moeilijk, maar dat is eigenlijk net de weg die ik wilde vermijden, want dan moet ik dus zelf een algoritme implementeren.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23-09 20:04
GrimaceODespair schreef op woensdag 15 april 2009 @ 01:23:
Wat betreft de gnu tools: voor zover ik kan zien, is het niet mogelijk om een soort hash te generen die aangeeft "hoeveel" de bestanden van elkaar verschillen. Maw, ik moet zelf een bepaald outputformaat kiezen, en daar een hash van berekenen, zodat ik kan zien welk bestand het minste verschilt van het bronbestand.
Een globale indicatie zou kunnen zijn het aantal regels dat afwijkt, wat je prima met de gnu tools kunt doen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 00:33

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
farlane schreef op woensdag 15 april 2009 @ 08:02:
[...]


Een globale indicatie zou kunnen zijn het aantal regels dat afwijkt, wat je prima met de gnu tools kunt doen.
Soms zijn er alleen maar variabelennamen en -types veranderd, en andere keren zijn er volledige regels toegevoegd of verwijderd. Ik dacht eigenlijk aan een meer fijngevoelig mechanisme, waarin dat soort verschillen gewogen wordt.

Misschien werkt het ook wel door alleen de regels te tellen, maar ik heb geen zin om dat te implementeren (niet dat ik daar een dag mee bezig ben ofzo (8> ), en er dan achter te komen dat het toch niet voldoet.

Ik ben nu naar Simian aan het kijken, en dat lijkt toch in de buurt te komen.

Wij onderbreken deze thread voor reclame:
http://kalders.be


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 23-09 20:04
GrimaceODespair schreef op woensdag 15 april 2009 @ 10:04:
Soms zijn er alleen maar variabelennamen en -types veranderd, en andere keren zijn er volledige regels toegevoegd of verwijderd. Ik dacht eigenlijk aan een meer fijngevoelig mechanisme, waarin dat soort verschillen gewogen wordt.
Hmmja, ik bedoelde ook eigenlijk meer de regels die diff uitspuugt :) Maargoed als je met een andere tool ook geholpen bent is het ook oke natuurlijk :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 18-09 10:39
Anders kan WinMerge je misschien helpen? Sowieso een tool die elke developer die met TeamSystem werkt zou moeten installeren (Using WinMerge with TFS).
Met WinMerge kan je een directory compare doen en dan doorklikken op bestanden. Hij geeft alleen niet bij voorbaat aan in hoeverre bestanden aan elkaar gelijk zijn.

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Acties:
  • 0 Henk 'm!

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 00:33

GrimaceODespair

eens een tettenman, altijd ...

Topicstarter
riezebosch schreef op woensdag 15 april 2009 @ 10:28:
Anders kan WinMerge je misschien helpen? Sowieso een tool die elke developer die met TeamSystem werkt zou moeten installeren (Using WinMerge with TFS).
Met WinMerge kan je een directory compare doen en dan doorklikken op bestanden. Hij geeft alleen niet bij voorbaat aan in hoeverre bestanden aan elkaar gelijk zijn.
Ik gebruik zelf altijd KDiff3, die ik bovendien combineer met TortoiseSvn ipv tortoise's eigen diff/merge-tools.

Overigens heb ik net ook een Windows GUI gevonden voor Simian die het gebruik nog net iets gemakkelijker maakt: WinSAG
GrimaceODespair schreef op woensdag 15 april 2009 @ 10:04:
[...]
Soms zijn er alleen maar variabelennamen en -types veranderd, en andere keren zijn er volledige regels toegevoegd of verwijderd. Ik dacht eigenlijk aan een meer fijngevoelig mechanisme, waarin dat soort verschillen gewogen wordt.
Opties van simian zijn bijvoorbeeld: ignoreVariableNames en balanceParentheses. Perfect! :)

[ Voor 20% gewijzigd door GrimaceODespair op 15-04-2009 10:50 ]

Wij onderbreken deze thread voor reclame:
http://kalders.be

Pagina: 1