New App Release: Submodule Changes for Bitbucket

September 17, 2019
#News#Bitbucket
4 min

We have recently released a new app – Submodule Changes for Bitbucket. This free app is created to improve the experience with the Git submodule workflow. No more unreadable pull requests with changes to submodules and skipping the code review process!

Dealing with submodules can be annoying

Our company develops Awesome Graphs for Bitbucket – the app that provides the statistics for projects and repositories and helps to analyze and evaluate development team performance, code review practices and personal activity of each team member. Awesome Graphs for Bitbucket is very popular and has more than 2600 installs on the Marketplace at the moment. It’s available for Bitbucket Server, Data Center and Cloud. We use Git submodules that contain features which are similar for all the versions in order to achieve the fastest delivery.

If you use it in your projects too, you may face the situations when the commits made to a submodule are shown as two hashes in the Diff tab instead of displaying the lines of code, folders, and files that have actually been modified.

It creates the greatest difficulty to the reviewers of pull requests since there’s no chance to review changes and leave comments on the commits of the submodule repository.

Review Pull Requests Easily

If you don’t want to skip such an important part of the development process as the code review, you can try the solution we created: Submodule Changes for Bitbucket. At first, this app came as software that we were using internally, but then we discovered that lots of other developers face similar issues.

Submodule Changes for Bitbucket replaces two commit hashes with the files modified in a commit or pull request. It highlights the changes with a submodule update in the Diff tab as if all of them were made to a parental repository.

The app also gives you the possibility to watch the Blame view, leave comments and suggest improvements in pull requests. It makes the process similar to reviewing changes in the original repository.

Submodule Changes for Bitbucket is a completely free app that can simplify the code review process for the teams that use Git submodules for their projects.

Try it and see how it fits your workflow!

Related posts

    How to Perform Code Review and Track Team Activity in Bitbucket

    August 8, 2019
    #How To#Bitbucket#Case Study
    6 min

    Resolution Time Distribution Reports have helped a lot during the development of a high priority module to increase the reviewers, review frequency and also track team activity in Bitbucket.

    Eduard Pal, Innoface

    Innoface GmbH, one of our customers, is one of the leading providers of interfaces between PDM and ERP systems worldwide. Its applications help ensure a direct and reliable flow of information between engineering and logistics. They also offer additional products and services in order to facilitate seamless integration of the involved systems.

    Innoface product development team uses Awesome Graphs for Bitbucket mostly for making data-driven management decisions. They find it very useful to:

    • track the activity of each developer and a team in general;
    • check if code review goes according to the plans;
    • predict time to resolve pull requests.

    Let’s see how Innoface benefits from using Awesome Graphs for Bitbucket.

    Tracking team activity in Bitbucket

    Activity graph helps Innoface have a high-level overview of the total number of commits and contributors in a specific period, for example, a week. It also provides an opportunity to track the number of open pull requests from all the contributors and the repositories.

    Using this graph, the manager can assess the activeness of a contributor. This gives the manager an idea of whether an employee is following the company’s development policy or not as well.

    tracking team activity in Bitbucket

    Based on the number of open pull requests, the manager in Innoface can actually plan time to review the code and merge them. This graph also gives an opportunity to process the pull requests from the contributors that are working on the high-priority projects.

    Analyzing code review practices

    Innoface management finds Resolution Time Report very helpful when it comes to tracking the frequency of processing the pull requests.

    analyze code review in Bitbcuket

    The manager uses this report in order to see the frequency with which the reviewers are processing the pull requests. Based on the data that this report provides, it’s easier to make a reasonable decision and to assign either more reviewers or increase the frequency of the reviewers, especially for the high-priority projects.

    Predicting pull requests resolution time

    Resolution Time Distribution report helps Innoface estimate resolution time for future pull requests to make more accurate release dates planning.

    pull request resolution time in Bitbucket

    The manager of a product team uses this report in addition to the Resolution Time Report in order to estimate the resolution time for future pull requests.

    Conclusion

    Awesome Graphs greatly enriches the Bitbucket user experience for Innoface. With its help, it becomes much easier to make decisions based on data and keep an eye on how efficient their development practices are.

    Read more case studies to see how our customers benefit from using Awesome Graphs for Bitbucket in their work:

    Start a free trial of Awesome Graphs

    Related posts

      Awesome Graphs for Bitbucket: Exclude Files from Lines of Code Statistics

      March 22, 2019
      #How To#Bitbucket
      9 min

      Awesome Graphs for Bitbucket is an app visualizing statistics of Git repositories in terms of commits, pull requests, and lines of code. The Contributors graph, and the Code Frequency graph show how many lines of code were added and deleted in the repository in general and by each developer. 

      Sometimes lines of code statistics doesn’t represent correctly the actual effort and value that developers bring to the repository. For example, if a new library was added, it will bring hundreds of new lines while a task itself was easy to do and took half an hour.

      To make your data more precise and informative, there’s a feature in Awesome Graphs that allows the exclusion of files from lines of code (LOC) statistics.

      Why Exclude Files from LOC Stats

      This feature will be helpful for users, who:

      • Include source code from third-party libraries, and don’t want to count it towards individual code contributions.
      • Want automated code generated files not to be included into LOC statistics. 
      • Version a lot of configuration in very large xml files, and don’t want to count their updates as additions of thousands of LOC.
      • Want to include in LOC statistics only files with selected extensions (i.e. c, cpp, h).
      • Want to count in LOC statistics only files from the selected directory (i.e. src).

      How it works

      Repository administrators can add patterns in a gitignore format telling what files have to be excluded from LOC statistics of a repository.  

      bitbucket repository settings

      It is possible to exclude:

      • particular files
      • all files with selected extensions
      • all files from selected directories
      • everything except files with selected extensions
      • everything except files from selected directories

      When an administrator adds or modifies patterns, Awesome Graphs re-indexes the repository and displays graphs with new LOC statistics.

      Benefits Examples

      You can see examples of this feature usage in public repositories.

      Statistics for the main directory of a repository

      Let’s view the Contributors graph for the jquery repository. It shows additions of LOC in the whole repository.

      contributors bitbucket

      The repository exists since 2006, but according to the graph there was no significant activity there till 2014.

      It would be great to make the graph more informative and calculate LOC statistics only for the directory containing the main source code – src. We exclude from statistics all files except files from this directory and get a new graph showing the most important activity happened in the key folder of the repository. 

      contributors graph bitbucket

      Exclusion of files helped to get new insights:

      • There was intensive activity in 2006-2008, 2011, and 2014.
      • There was no significant activity after 2016.
      • Only two of top four contributors to the repository are also in the top four contributors to main source code.

      In the first graph there were peaks of activity showing additions of 50K and even 250K lines of code per week. In the second graph the largest peak shows addition of 25K lines of code, others – about 5K. This data represents the real work of developers more accurately.

      Exclusion of third-party libraries from statistics

      Let’s view the  graph for the kubernetes repository.

      Bitbucket Code Frequency

      There are two peaks of activity: addition and deletion of more than 300K lines of code. They represent not actual work, but operations with third party libraries. Huge peaks of additions and deletions caused a large scale of Y axis. Due to this all other activity seems to be non-significant.

      Let’s exclude from lines of code statistics files from the directory third_party.

      The graph has become more accurate. Peak values disappeared. The scale of Y axis decreased allowing to get a better understanding of the activity in the repository.

      Get more informative LOC statistics

      Using Awesome Graphs for Bitbucket, you can enrich your commits, lines of code reporting with the REST API the app provides. For example, you can easily count each pull request size to decide whether it needs to be decreased. Read more about it in our blog post.

      Try the app for free discover more benefits and unleash the potential of your teams.

      New in Awesome Graphs for Bitbucket Cloud: Lines of Code Statistics and Aggregated Stats for All Repos

      December 6, 2018
      #News#Bitbucket
      3 min

      Awesome Graphs for Bitbucket Cloud visualizes statistics of Git repositories. View this video to see the new features and the improvements we’ve recently made to the app or keep reading.

      Lines of code statistics

      Previously Contributors graph showed only commits statistics. Now it visualizes repository and user activity in terms of lines of code (LOC).

      You can choose what data to show on the summary graph and individual contributor graphs:

      • commits
      • added lines of code
      • deleted lines of code

      Lines of code metrics are more informative than the number of commits. They will help you to get a better understanding of project activity and efficiency of your team members.

      Contributors graph

      Aggregated stats for all repositories

      Now Awesome Graphs can show ContributorsCommits, and Punchcard graphs with aggregated statistics across all repositories of a user or a team.

      This feature will help you to:

      • see your personal progress
      • monitor performance of your team
      • evaluate work of your team members

      Aggregated stats in Contributors graph

      Awesome Graphs for Bitbucket Cloud is an analytical tool visualizing repository and user activity. With it, you can evaluate team’s performance, track process improvements, and deliver products faster by eliminating guesswork. Try the app now for free!

      Learn more about how to install Awesome Graphs or click here to install the app.

      Related posts

        New in Awesome Graphs: Analyzing Pull Requests Resolution Time, Monitoring Repository Indexing, and More

        November 1, 2018
        #Analytics#News#Bitbucket
        6 min

        Our app Awesome Graphs for Bitbucket visualizes statistics of commits, pull requests, and lines of code helping to monitor and analyze code development and code review.

        During the past year we’ve added new great features and made significant improvements. Let us tell you how you can benefit from them.

        Pull requests’ resolution time distribution

        We’ve created a new pull requests report – Resolution Time Distribution.

        This report helps you to answer such questions:

        • How long does it usually takes to resolve pull requests?
        • Are there more pull requests with a long or short resolution time?
        • What is an expected resolution time for future pull requests?
        • What pull requests of the period had the shortest/longest resolution times?
        • How long it took to resolve a particular pull request?

        Resolution time distribution report

        In the report you will see pull requests grouped by time taken to resolve them (merge or decline).

        You will see median, 25 and 75 percentile of pull requests’ resolution time. This data can help you to estimate resolution time of future pull requests.

        For any time interval (blue bar on the chart) you will be able to see a list of all pull requests with their resolution time and reviewers. For more detailed analysis you can easily switch to a particular pull request to see code changes and discussion during review.

        List of pull requests in Resolution time distribution report

        Learn more about this report

        Admin tools for monitoring repository indexing

        We’ve created powerful tools helping to administer Awesome Graphs. These tools are helpful when monitoring Awesome Graphs performance during repository indexing and troubleshooting app related issues.

        JMX Metrics

        Performance of Awesome Graphs can be monitored via JMX. It provides administrators with the way to understand what is happening in the app. You can estimate how much time repository indexing will take, see if there are any issues while indexing repositories or refs, monitor resource consumption.

        JMX metrics of Awesome Graphs

        More information in logs

        Awesome Graphs creates comprehensive logs. It helps to easily investigate app related issues.

        In Bitbucket UI and in support zip admins can see information about data indexed by Awesome Graphs:

        • total number of indexed contributors
        • total number of indexed commits
        • number of repositories in indexing queue

        Detailed information about repository indexing is recorded in awesome-graphs.log file located in the Bitbucket home directory.

        Alerts to admins

        If a repository could not be indexed admins will get a notification via Bitbucket alerts. It helps to quickly detect and solve problems.

        Alert to admins in Bitbucket

        Learn more about administering Awesome Graphs

        Improved performance

        We’ve significantly improved performance of Awesome Graphs during repository indexing:

        • Commit data are indexed in batches to decrease memory usage.
        • While indexing forks only unique commits are stored in the database. If the same commit exists both in a fork and an original repository, it is not duplicated. This change helps to improve performance and reduce database size. For one of our customers with 10.000+ repositories the size of the table was reduced by four times.
        • Awesome Graphs uses adaptive throttling. With it Bitbucket examines the total physical memory on the machine and determines a maximum ticket number that the machine can safely support. This approach improves the system performance during repository indexing. Learn more about adaptive throttling.

        We are always happy to receive feedback from customers. Feel free to contact us if you have any questions or would like to suggest new features.

        Awesome Graphs has become more awesome. Try this app for free

        Related posts

          Smart Attachments for Confluence Released!

          June 7, 2018
          #Document management#News#Confluence
          5 min

          Over the past years, we were continuously receiving your requests about implementation of our Jira app for attachment management in Atlassian Confluence. We got different ideas and did our best to figure out what kind of a solution would satisfy your needs and improve your experience with attachments in Confluence.

          We reviewed tons of requests at Atlassian Community trying to find problems that our customers encounter every day. After that we created two prototypes which we further discussed with existing Confluence users and chose the proven variant.

          Ladies and gentlemen, StiltSoft team is happy to announce release (here goes the roll of drums) – Smart Attachments for Confluence!

          Our new app was designed to simplify your experience with storing attachments in project spaces and getting quick access to the required document at once.

          Shareable space storages

          People who are actively attaching files to Confluence pages, after a short period of time usually encounter a problem of finding the right attachment. They need to browse through Confluence pages or search for a specific file in Confluence. The problem grows extremely faster when multiple team members are adding files.

          Just for such cases we have created the solution which allows you to have a centralized space storage shared across your whole team. Instead of keeping your important project files across different pages, you can store them in dedicated folders and reference these files on the appropriate pages in Confluence.

          Now you can keep all your plans, reports, reviews, presentations, and other documents in one shareable place.

          Multi-level folder structure

          Get used to standard folder structure of your operating system? Do the same in Confluence. Create multiple levels for storing your project artifacts, design files, promotion materials, documentation guides, and other files needed for successful accomplishment of your project.

          Quickly navigate across your folders and add new folders wherever needed for keeping your files in hierarchy.

          Comprehensive control over documents and revisions

          Upload single documents or a bulk of files into the appropriate folder by drag-n-drop. Instantly locate the necessary files in folders and use them for running your project activities.

          Keep track of specific document revisions and get back to the appropriate version at once.

          Embedding documents and assets into Confluence pages

          Use the already uploaded project documents and files and quickly integrate them into your Confluence pages. Add links to specific folders and artifacts and collaborate on them with your teammates.

          Start a free trial of the app right now and take your experience with attachments in Confluence to the next level.

          Related posts