Giter VIP home page Giter VIP logo

gitqlient's People

Contributors

515hikaru avatar alexdewar avatar arabine avatar band-a-prend avatar coldnew avatar francescmm avatar harens avatar hartwork avatar hegjon avatar luzpaz avatar martindelille avatar mfurkanuslu avatar mslusarz avatar msumulong avatar mykhailo-maidan avatar orgads avatar pa-sowa avatar shuihuo avatar tim77 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gitqlient's Issues

Ability to select mulitple files from a commit to queue for diff

I noticed you have this awesome feature where each file selected to diff will appear on the diff page so that one can select back and forth between them. But in order to put a bunch of files on there, you need to go back and forth between repoview and diff view. Should be able to use shift or control to select multiple files to diff.

If need more clarity on the issue, see https://youtu.be/4hLlQzepAlg?t=413 (6 min 53 seconds, if that link does not deliver you to the right place)

Browse the full commit diff

Add functionality so the user can browse through the full diff between two commits:

  • Jump between modified files
  • Search in the diff

Unify RevisionsCache

Merge the path cache management into the RevisionsCache and unify the way of accessing it

Can this run on Win 10?

Hey there, huge fan of this repo. My prayers for a good linux git client have been answered! (plus qt to boot ;) )
One of my co-workers is currently using Win10. Is it possible to build this on Windows 10?

Thanks!

Provide a project-base Git config UI

Right now, GitQlient asks for Git config only if global Git config is not present.

The configuration should be editable at any moment for each repository.

Split Git class in different scopes

The Git class right now holds all the Git methods from all scopes. For readability and extensibility purposes it should be divided in different scopes.

Create User Manual

Right now there is a lot of undocumented features and functionality that should be known.

Build errors

Building GitQlient on a Windows machine with Qt 5.12.2 with MinGW (GCC 7.3) cuases the following build error:

g++ -c -fno-keep-inline-dllexport -Werror -O2 -std=gnu++1z -Wall -W -Wextra -fexceptions -mthreads -DUNICODE -D_UNICODE -DWIN32 -DMINGW_HAS_SECURE_API=1 -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I. -IQLogger -I..\Qt\5.12.2\mingw73_32\include -I..\Qt\5.12.2\mingw73_32\include\QtWidgets -I..\Qt\5.12.2\mingw73_32\include\QtGui -I..\Qt\5.12.2\mingw73_32\include\QtANGLE -I..\Qt\5.12.2\mingw73_32\include\QtCore -Irelease -I. -I..\Qt\5.12.2\mingw73_32\mkspecs\win32-g++ -o release\namespace_def.o namespace_def.cpp namespace_def.cpp: In function 'bool QGit::writeToFile(const QString&, const QString&, bool)': namespace_def.cpp:113:75: error: unused parameter 'setExecutable' [-Werror=unused-parameter] bool QGit::writeToFile(const QString &fileName, const QString &data, bool setExecutable) ^~~~~~~~~~~~~ namespace_def.cpp: In function 'bool QGit::writeToFile(const QString&, const QByteArray&, bool)': namespace_def.cpp:137:78: error: unused parameter 'setExecutable' [-Werror=unused-parameter] bool QGit::writeToFile(const QString &fileName, const QByteArray &data, bool setExecutable) ^~~~~~~~~~~~~

Modify UI for stage files

Right now a click over the item in the unstaged files list adds the file to the staged files list. There is no behaviour implemented for the double click.

This is counter-intuitive since the double click opens the diff in the tree view of the repository.

Change to implement

  • To remove the click behaviour and keep it only to select a file.
  • Implement double click to open the file diff.
  • Add context menu option to add the file into the staged list.
  • Add an add button in the unstaged and untracked lists to add the files to the staged list.
  • Add a remove button in the staged list to return the files to its original list.

Support for folder as parameter

I created a desktop file but seems that qgitclient doesn't accept as first parameter the folder to open with this tool.

[Desktop Entry]
Type=Service
Encoding=UTF-8
Actions=OpenWithQGitClient
ServiceTypes=KonqPopupMenu/Plugin,inode/directory
ExcludeServiceTypes=kdedevice/*

[Desktop Action OpenWithQGitClient]
Name=Open with QGitCLient
Exec=/path/GitQlient/GitQlient %d

Allow navigation in blames

File blaming should be opened in a tab. It should show the starting commit where the files is being blamed. This is a pre-requirement for #34.

Problem with loading plugin with QtCreator 4.11 on macOS

I've downloaded plugin for QtCreator 4.11 (libGitQlientPlugin_1.0.0-qtc4.11.x.dylib), but it actually needs some components of version 4.10:

Could not resolve dependency 'Core(4.10.0)'
Could not resolve dependency 'ProjectExplorer(4.10.0)'

Qoverload

Hello,
I tried to compile it to OS/2 with Qtv5.13.1
But i get error when running make...

../app/AGitProcess.cpp: In constructor 'AGitProcess::AGitProcess(const QString&)':
../app/AGitProcess.cpp:102:18: error: 'qOverload' was not declared in this scope
connect(this, qOverload<int, QProcess::ExitStatus>(&AGitProcess::finished), this, &AGitProcess::onFinished,
^
../app/AGitProcess.cpp:102:28: error: expected primary-expression before 'int'
connect(this, qOverload<int, QProcess::ExitStatus>(&AGitProcess::finished), this, &AGitProcess::onFinished,
^
../app/AGitProcess.cpp:102:53: error: expected primary-expression before '>' token
connect(this, qOverload<int, QProcess::ExitStatus>(&AGitProcess::finished), this, &AGitProcess::onFinished,
^
make[1]: *** [debug/AGitProcess.obj] Error 1
make[1]: *** Waiting for unfinished jobs....
../app/ConfigWidget.cpp: In member function 'QWidget* ConfigWidget::createConfigWidget()':
../app/ConfigWidget.cpp:173:23: error: 'qOverload' was not declared in this scope
connect(mBtnGroup, qOverload(&QButtonGroup::buttonClicked), this, [this, stackedWidget](int index) {
^
../app/ConfigWidget.cpp:173:33: error: expected primary-expression before 'int'
connect(mBtnGroup, qOverload(&QButtonGroup::buttonClicked), this, [this, stackedWidget](int index) {
^
make[1]: *** [debug/ConfigWidget.obj] Error 1
make[1]: Leaving directory `E:/qt5-src/gitqlient/os2-debug'
make: *** [debug] Error 2

Any thoughts ???

Add context menu in the blame history log

Add the following options into the blame history log:

  • Copy SHA
  • View file diff (only between the selected commit and the previous one in history)

The "view file diff" action should be triggered when double click on the row as well.

Handle Differently named remote repos

If remote repo is not named origin, top right box shows "fatal:ambiguous".

Only two examples right now, but I have one repo where I have named the remote "github" that one shows fatal:ambiguous. I have another repo where it's named origin and I can correctly see the great data you're surfacing of how many commits ahead a particular branch is.

Amending a commit doesn't work

There is a problem parsing the title and the description when amending a commit. For that reason the amend action doesn't happen.

Browse the file diff

Add functionality so the user can browse through the full diff between two commits:

  • Jump between modified lines
  • Search in the diff

Create UI for merge solving

Create a UI that allows the user to manage merges:

  • Show the conflicts of a merge and/or cherry-pick styled in the unstaged files list
  • Show the results of the merge in GitQlient in a different window
  • Create a new UI to allow the user to solve the issues

Errors on compiling

I have the last version of qlogger but on compile I get that:

QLogger/QLogger.cpp:73:113: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘const QVector<QVariant>&’
   73 |           { message, static_cast<int>(level), QDateTime::currentDateTime().toString("dd-MM-yyyy hh:mm:ss.zzz") });
      |                                                                                                                 ^
In file included from QLogger/QLogger.cpp:1:
QLogger/QLogger.h:241:69: note:   initializing argument 2 of ‘void QLogger::QLoggerManager::queueMessage(QString, const QVector<QVariant>&)’
  241 |    void queueMessage(const QString module, const QVector<QVariant> &logData);
      |                                            ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
QLogger/QLogger.cpp: In member function ‘void QLogger::QLoggerManager::writeAndDequeueMessages(const QString&)’:
QLogger/QLogger.cpp:175:44: error: invalid use of incomplete type ‘class QVector<QVariant>’
  175 |          const auto message = element.value().at(0).toString();
      |                               ~~~~~~~~~~~~~^~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1204,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: note: declaration of ‘class QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
QLogger/QLogger.cpp:176:64: error: invalid use of incomplete type ‘class QVector<QVariant>’
  176 |          const auto level = static_cast<LogLevel>(element.value().at(1).toInt());
      |                                                   ~~~~~~~~~~~~~^~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1204,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: note: declaration of ‘class QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
QLogger/QLogger.cpp:177:39: error: invalid use of incomplete type ‘class QVector<QVariant>’
  177 |          const auto dt = element.value().at(2).toString();
      |                          ~~~~~~~~~~~~~^~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1204,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: note: declaration of ‘class QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h: In instantiation of ‘struct QMapNode<QString, QVector<QVariant> >’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:422:51:   required from ‘const Key& QMap<K, V>::iterator::key() const [with Key = QString; T = QVector<QVariant>]’
QLogger/QLogger.cpp:171:39:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:113:7: error: ‘QMapNode<Key, T>::value’ has incomplete type
  113 |     T value;
      |       ^~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1204,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: note: declaration of ‘class QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h: In instantiation of ‘class QTypeInfo<QVector<QVariant> >’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:129:79:   required from ‘void QMapNode<Key, T>::destroySubTree() [with Key = QString; T = QVector<QVariant>]’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:248:13:   required from ‘void QMapData<Key, T>::destroy() [with Key = QString; T = QVector<QVariant>]’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:339:43:   required from ‘QMap<K, V>::~QMap() [with Key = QString; T = QVector<QVariant>]’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:1187:7:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: error: invalid application of ‘sizeof’ to incomplete type ‘QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: error: invalid application of ‘sizeof’ to incomplete type ‘QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h: In instantiation of ‘QMapData<Key, T>::Node* QMapData<Key, T>::createNode(const Key&, const T&, QMapData<Key, T>::Node*, bool) [with Key = QString; T = QVector<QVariant>; QMapData<Key, T>::Node = QMapNode<QString, QVector<QVariant> >]’:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:811:11:   required from ‘QMap<K, V>::iterator QMap<K, V>::insertMulti(const Key&, const T&) [with Key = QString; T = QVector<QVariant>]’
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:1207:39:   required from ‘typename QMap<K, V>::iterator QMultiMap<K, V>::insert(const Key&, const T&) [with Key = QString; T = QVector<QVariant>; typename QMap<K, V>::iterator = QMap<QString, QVector<QVariant> >::iterator]’
QLogger/QLogger.cpp:160:45:   required from here
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:230:17: error: invalid use of incomplete type ‘class QVector<QVariant>’
  230 |                 new (&n->value) T(v);
      |                 ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:1204,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qiterator.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMap:1,
                 from QLogger/QLogger.h:36,
                 from QLogger/QLogger.cpp:1:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qtypeinfo.h:193:1: note: declaration of ‘class QVector<QVariant>’
  193 | Q_DECLARE_MOVABLE_CONTAINER(QVector);
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make: *** [Makefile:1442: QLogger.o] Error 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.