View more context in diff

This was a feature available on Gitlab and Github but not on Isshub, and it was something that was missed: the ability to load more lines before/after a diff hunk.

But… it's now possible:

Selection_021.png


Try it by yourself on isshub.io

Isshub is now completely usable on mobile

Isshub wasn't originally conceived in the spirit of "mobile first."

But we did a pass on all screens to make it completely usable on mobile.

Here are some screenshots on mobile:

The main dashboard:

Screen Shot 2020-02-08 at 21.48.09.png

A repository dashboard:

Screen Shot 2020-02-08 at 21.48.20.png

The list of issues:

Screen Shot 2020-02-08 at 21.48.29.png

With its filters:

Screen Shot 2020-02-08 at 21.48.37.png

And with an issue selected:

Screen Shot 2020-02-08 at 21.48.52.png

Once scrolled:

Screen Shot 2020-02-08 at 21.52.11.png

Get rid of the issues list by using the full width for the issue:

Screen Shot 2020-02-08 at 21.52.26.png

Screen Shot 2020-02-08 at 21.52.31.png

The "changed files" tab:

Screen Shot 2020-02-08 at 22.05.18.png

And you can use all the screen by asking the browser to get in full screen mode (it's also available in desktop to remove any disturbances):

Screen Shot 2020-02-08 at 22.05.28.png


Try it for free by yourself on isshub.io

Full edit and create/edit/view in new browser tab

Until now, it was not possible to edit all the fields of an issue/pull/merge request at once, it was only possible field by field.

As convenient as it can be when you want to edit a single field (add a label for example), it could be annoying for a more complex change.

So now it's possible to edit all fields in a unique form.

Simply click on the big blue Edit button:

Selection_020.png

And it will open the form in a modal:

Selection_021.png

Notice the little icons on the top right:

Selection_022.png

The first icon one will open this form in a new tab in your browser, while keeping the changes you may already have made. It can be useful if you want to edit for example the description but need to look for something on another issue.

The second icon will enlarge the modal in the current tab.

And the third one will close it.

Note that there icons are also available on the modal used to create an issue. So if you start creating an issue and want to have more information from another one, you can open the create form in a new tab, while keeping everything you entered.

About the big blue Edit button, note that it is also available on the bottom of the page. So it's possible to add a comment/review and without scrolling back to the top, edit the issue (change assignees, labels…)

Selection_023.png

And finally, it's not only possible to create and edit in a new tab, but you can open an issue or pull/merge request in a new tab. So now you can have many issues opened at once, without having each time a big list opened.

To do so, you have many ways:

  • With the keyboard: Ctrl-click (use Cmd-click on mac) on the link of an issue/pull/merge request
  • With the mouse: right-click on the link of an issue/pull/merge request, then select "Open in a new tab" (text may differ depending on your browser)
  • With the mouse: put your cursor over an issue/pull/merge request on the list and wait for the popup to be displayed:

Selection_024.png

You can see two icons on the top right. The first one will open in a modal in the current tab, the second one will open in a new tab in your browser.

And the last way, when you are in an opened issue/pull/merge request, via the main menu on the top right:

Selection_025.png

Selection_026.png


Try it for free by yourself on isshub.io

Pull/merge requests base branches and relations

It is now possible to change the base branch of a pull/merge request directly on isshub without having to go to Github/Gitlab.

For example say we have a new feature to develop that can be split in two parts.

First we do a first merge request, "part 1", and while waiting for the review we start creating the "part 2".

So we set this new merge request to be based on the branch of the first part.

Which give us something like:

Selection_020.png

We can see in [1] a button to edit the base branch.

And in [2] we can see a link to the parent pull request, with the parent pull request having the equivalent link to the current one:

Selection_022.png

You can click on the link of the child/parent pull request to see it in a modal window.

Now assume that the first merge request is reviewed and merged in develop. To have a correct diff, we may want to change the base branch of the second merge request from feature/twidi/new-feature-part-2 to develop.

This can be done by clicking on the edit icon just on the left of our [1] mark in the first screenshot, which give us:

Selection_021.png

Just select your branch, click on the [✔️] button and it's done!

When a pull/merge request is based on a branch that is not the default one, this base branch is displayed in the list of issues:

Selection_023.png

And you can click on it to filter all pull/merge requests having the same base branch.


Try it for free by yourself on isshub.io

Files tree and fast review

It is now possible to display the files of a pull/merge request in a tree view.

It looks like this:

Selection_018.png

Notice how we "merge" directories, like for react-reconcilier/src.

Here is the "list view" of the same pull request, for comparison:

Selection_017.png

Tree view comes with a nice feature: a fast way to review a whole directory. This is available by opening the menu on the right of the directory name:

Selection_020.png

Selection_021.png

Here you have a button to copy the full path of the directory, and buttons to easily review all the files. It can be useful for example ff this is a folder containing compiled assets: you can mark all of them as ignored in your review.

Note that there is also a menu for files, with also a button to copy the full path and a way to set your review for this file:

Selection_022.png

Note that this menu for files is also available in "list view'.

And last point, you can "collapse" a directory to hide its content, by clicking on its name. In the following screen, we collapsed the __tests__ directory:

Selection_023.png


Try it for free by yourself on isshub.io

New experimental diff mode + diff modes persistence

Experimental diff mode

We added a new experimental diff mode to make some changes easier to (re)view in pull/merge requests.

Here are a few examples of how this new mode render some changes:

Example 1:

When the only changes on a line is added text, only highlight this added text.

Normal mode:

Selection_017.png

Experimental mode:

Selection_018.png

Example 2:

When text is de-indented, only highlight the beginning of the line.

Normal mode:

Selection_019.png

Experimental mode:

Selection_020.png

Example 3:

When text is indented, only highlight the new indent part at the beginning of the line.

Normal mode:

Selection_022.png

Experimental mode:

Selection_021.png

Activation

To activate the experimental mode, open the diff menu

Selection_023.png

And check the "Use experimental diff" line

Selection_024.png

The new diff mode also works in "Side by side" view.

Note that the "Attenuate white space changes" is not available in this experimental mode.

Diff modes persistence

All the options regarding the rendering of the diff are now persistent:

  • Display files as tree
  • View diff side by side
  • Attenuate white space changes
  • Use experimental diff
  • Minimize this sidebar (this option only works in full-screen issue view)

So you can pick you preferred combination and it will stay the same every time you view a diff.

The persistence is only for a specific browser: for example you may want the side by side mode activated on your desktop browser but not on mobile.


Try it for free by yourself on isshub.io

Sponsoring Djangocon EU 2019

Django has been at the core of Isshub from the beginning. In fact, Isshub is entirely based on open source software: language, framework, databases engines, and everything else that is used to host the product.

And without these open source tools, Isshub would simply not exist.

So, as a mean of contributing back, we thought than supporting a conference would be a good idea, and at the same time, would allow more people to get to know us and, why not, discover a new and relaxed way to manage their issues, code requests and notifications from Github and Gitlab.

So we're proud to announce that Isshub is officially a sponsor of the DjangoCon Europe 2019, which will take place in Copenhagen, Denmark, from 10 to 14 April 2019.

What is DjangoCon? As indicated on the conference website:

DjangoCon Europe is run by the community for the community: We are the 11th European conference, made up of Django practitioners from all levels.

This is not really our first sponsorship: we were a proud sponsor of the "Rencontres Django", aka DjangoCon France 2018 but it was a relatively small conference compared to its European counterpart which will see people from all other the world.

We are excited about this new experience and we look forward to sharing with you if you are in Copenhagen at this time.

Meet... Gitlab!

Less than a year ago, Microsoft bought Github.

Even if it doesn't change anything, a lot of people got scared and moved to Gitlab despite that at the time... Gitlab was hosted on Microsoft Azure (but it changed a few weeks later)

A few years ago, another change from Github already had the same consequences.

So it's now a thing: Github has a serious competitor, and at Isshub we decided to take that into account and integrated Gitlab, in addition to Github, into our product.

It was a hard work because everything was focused around the Github models and API, and there are a lot of differences between the two git hosting companies.

But the work is now done, and you can enjoy having a clean way to view your Gitlab issues, to review your merge requests, as you did for Github.

So you can have in Isshub a Github account and a Gitlab one (in fact many of them), switching to one or the other very easily.

We decided not to mix in the product the content of distinct accounts, but the switch is easy: you don't have to log out and log back in with the other account.

We added some niceties while rewriting some parts of the applications, like the way to mark issues as read or waiting (at any point in time of the issue), some small tweaks in the UI, etc, etc.

Some things are specific to Gitlab. The main points are:

  • with the free Gitlab plan, you cannot assign many users to an issue
  • we managed to have a clean way to never have to scroll to find a thread: every comments are at their place in the issue timeline, with an easy way to see the whole thread.
  • we managed to have clean "reviewed"/"discarded" comments for projects that don't have Gitlab reviews activated because of the feature not activated in their plan

We hope you'll find this useful to be able to use the same UI to manage the content of two very different git hosting products.

Multiple actions on Github notifications

Last year we added the multi-select feature on list of issues, which allows to make the same change to many issues in a list.

But this feature was missing from the list of Github notifications. It's a list of issues, but not the same kind, because not related to a single repository.

So we added the multi-select feature, but it only allows you to mark as read/unread and active/inactive many issues at once, which can really be useful if you have many notifications.

For example, to mark all the notifications from a specific repository, before that you had to do it issue by issue.

Now it's a lot more faster: filter the list on a repository, then activate the multi-select feature, select all the issues, and mark them all as read!

Create issues from anywhere

Until now, to create an issue on a repository, you had to go to a page related to this repository, for example its dashboard, using the repository switcher on the top left.

Now, when you press "c", the modal window that open to create an issue, has its own repository switcher at the top so you can now easily create an issue from any repository you have the right to do so.

Of course, by default, the selected repository is the one you are actually on!