Skip to content

ArsMasiuk/duploq

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DuploQ - GUI for finding duplicates in source files

Download DuploQ

DuploQ is a GUI frontend for Duplo duplicate finder console tool. Its goal is to find duplicates (i.e. copy-pasted parts of code) across several source files.

Locating and eliminating source code duplicates is an important part of the overall refactoring process which leads to decreasing a project's technical dept and increasing stability of the software.

duploq-0 1-linux-1

Supported languages

Currently DuploQ directly supports C, C++, C#, Java and JavaScript languages, but it can be used for other languages as well.

Supported platforms

Currently, Microsoft Windows and Linux platforms are supported.

Since DuploQ is based on Qt C++ framework, it can easily be ported across several platforms.

Installation

DuploQ could be either compiled & installed from sources or by installer program (Windows) or package manager (Linux).

Binaries

The latest binaries can be downloaded from releases page.

Sources

To install DuploQ from sources:

  1. Make sure that you have Qt framework and C++ compiler installed on your system.
  2. Download and extract source code package in a directory where it has to be built (let's name it SOURCE_DIR).
  3. Go into SOURCE_DIR/src directory and run qmake -r.
  4. Run make (if under Linux) or nmake (if using MSVC under Windows) or mingw32-make (if using MinGW under Windows) etc.

After the DuploQ has been built, you can install it running sudo make install (under Linux).

Workflow

DuploQ's approach is a pretty straighforward.

First, DuploQ allows you to choose where to look for the duplicates (files or folders).

Then it builds list of input files and passes it to the Duplo engine together with necessary parameters.

After the files have been processed, DuploQ parses Duplo's output and visualises the results in easy and intuitive way. Also it provides additional statistics information which is not a part of Duplo output.

DuploQ shares the results across several views: file-based statistics, side-by-side view, block-based view, raw engine output.

File-based view displays a list of files which contain duplicated blocks, their amount and size (duplicated lines of code). The results are sorted to let you immediately see which files include the longest duplicated blocks. For every file, internal (i.e. inside the same file) and external duplicates (i.e. across more files) are represented.

Side-by-side view allows to navigate through the files containing duplicates to see them more in detail. The duplicated blocks are visually highlighted so you can easily see what exactly has been copy-pasted.

Block-based output shows you all the found duplicated blocks in a hierarchical structure. It allows you to see which parts of code are repeated at most.

About

Duplo C/C++/C#/Java/JavaScript source code duplicates finder GUI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 84.2%
  • Shell 4.2%
  • QMake 3.3%
  • C 2.7%
  • XSLT 2.7%
  • Inno Setup 2.1%
  • Other 0.8%