[go: up one dir, main page]

JP7150002B2 - Software development support system, software development support server and software development support program - Google Patents

Software development support system, software development support server and software development support program Download PDF

Info

Publication number
JP7150002B2
JP7150002B2 JP2020219816A JP2020219816A JP7150002B2 JP 7150002 B2 JP7150002 B2 JP 7150002B2 JP 2020219816 A JP2020219816 A JP 2020219816A JP 2020219816 A JP2020219816 A JP 2020219816A JP 7150002 B2 JP7150002 B2 JP 7150002B2
Authority
JP
Japan
Prior art keywords
commit
file
software development
user
development support
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020219816A
Other languages
Japanese (ja)
Other versions
JP2022104700A (en
Inventor
マーク マリアン ヴァシレ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2020219816A priority Critical patent/JP7150002B2/en
Publication of JP2022104700A publication Critical patent/JP2022104700A/en
Application granted granted Critical
Publication of JP7150002B2 publication Critical patent/JP7150002B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、Gitを用いてソフトウェア開発を行う場合のソフトウェア開発支援技術に関し、特に、Gitのホスティングサービスを利用して、複数のメンバで協働してソフトウェア開発を行う場合に好適に適用できる。 The present invention relates to software development support technology for software development using Git, and is particularly suitable for software development in collaboration with a plurality of members using a Git hosting service.

従来、Git、つまりプログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムを用いてソフトウェア開発が行われている。Gitでは、ソースコードの履歴を「リポジトリ」と呼ばれる場所で管理している。リポジトリには、全体を統括しているサーバに存在する「リモートリポジトリ」と、それぞれの開発者のデバイスに存在する「ローカルリポジトリ」と、がある。開発者は各自のローカルリポジトリにそれぞれの変更履歴を記録し、しかるべきタイミングでリモートリポジトリに反映することにより、ネットワークがつながらない環境でもバージョン管理を可能とし、全体としてソースコードの整合性を保つようにしている。 Conventionally, software development has been performed using Git, a distributed version control system for recording and tracking change histories of program source codes and the like. Git manages the source code history in a place called "repository". There are two types of repositories: "remote repositories" that exist on the server that controls the whole, and "local repositories" that exist on each developer's device. By recording each change history in their own local repositories and reflecting them in the remote repositories at the right time, developers can manage versions even in environments without a network connection, and maintain the integrity of the source code as a whole. ing.

Gitを用いてソフトウェア開発を行う場合、一般的には、より使いやすく便利な機能が組み込まれた、Gitのホスティングサービス、例えば、GitHub(登録商標)などを利用することが多い。このようなGitのホスティングサービスを利用する場合、例えば、プルリクエスト(Pull Request)は、ソースコードの変更点について他のメンバにレビュー依頼ができる機能であり、レビューにてOKとなったソースコードだけを承認して反映するので、最終的にマージされるソースコードの品質を向上させることに役立っている。 When developing software using Git, it is common to use a Git hosting service, such as GitHub (registered trademark), which incorporates easier-to-use and convenient functions. When using such a Git hosting service, for example, Pull Request is a function that allows other members to review changes in the source code. are approved and reflected, which helps improve the quality of the final merged source code.

例えば、 非特許文献1には、サーバにあるリモートリポジトリをクライアントでも管理し、クライアント間でリポジトリを連携する分散型バージョン管理システムが記載されている。 For example, Non-Patent Document 1 describes a distributed version control system in which a remote repository on a server is also managed by a client, and the repository is linked between clients.

岩松 信洋、上川純一、まえだこうへい、小川 伸一郎著 「Gitによるバージョン管理」、オーム社、2011年Nobuhiro Iwamatsu, Junichi Kamikawa, Kohei Maeda, Shinichiro Ogawa, "Version Control with Git", Ohmsha, 2011

しかしながら、現状のプルリクエストを用いたソフトウェア開発では、プルリクエストの数が多く、また、他のメンバもソースコードを適切にレビューする時間が十分にないことも多く、各メンバや承認者のレビュー負担が大きいという問題がある。 However, in the current software development using pull requests, the number of pull requests is large and other members often do not have enough time to properly review the source code. is large.

したがって、プルリクエストのレビューをすることなく、ソースコードの品質向上に役立つ仕組み、換言すれば、Gitのホスティングサービスのサーバにプッシュ(Push)、つまりファイルの追加・変更の履歴をリモートリポジトリにアップロードする以前の工程において、ソースコードの品質向上に役立つ仕組みが求められていた。 Therefore, it is a mechanism that helps improve the quality of source code without reviewing pull requests. In the previous process, there was a demand for a mechanism that would help improve the quality of the source code.

また、現在のGitを用いたソフトウェア開発では、他のメンバがプッシュやプルリクエストを行うまでは、他のメンバのソースコードを見ることができないため、他のメンバがどのような作業を行っているのか不明であるという問題もある。 Also, in the current software development using Git, it is not possible to see the source code of other members until they make a push or pull request. There is also the problem that it is unclear whether

本発明は上記の事情を鑑みてなされたものであり、Gitのホスティングサービスのサーバにプッシュする以前において、メンバ間のコミュニケーションを十分に図ることができ、ソフトウェアの品質を向上させることができるソフトウェア開発支援システム、ソフトウェア開発支援サーバ及びソフトウェア開発支援プログラムを提供することを目的とする。 The present invention has been made in view of the above circumstances, and is a software development method that enables sufficient communication between members and improves the quality of software before pushing it to the Git hosting service server. An object is to provide a support system, a software development support server, and a software development support program.

上記目的を達成するため、本発明の一態様に係るソフトウェア開発支援システムは、
複数のユーザが利用する複数のユーザ端末と、該複数のユーザ端末のそれぞれとネットワークを介して相互に通信可能なサーバと、を備え、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援システムであって、
前記複数のユーザ端末は、それぞれ、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作するアドインソフトと、が動作可能であり、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記サーバに送信するコミットリスト作成・送信部と、
前記サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶部と、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記サーバに送信する変更ファイル作成・送信部と、
前記サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示部と、
を備え、
前記サーバは、
ブランチ、ユーザ及びファイルごとに管理されたファイルの前記差分データと、前記複数のユーザ端末から送信された前記コミットリストと、を記憶する第二の記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストを受信した場合、受信した前記コミットリストを前記第二の記憶部に記憶するコミットリスト受信・記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストに基づいて、前記最新の共通コミットを検索し、検索した前記最新の共通コミットを前記複数のユーザ端末のそれぞれに送信する共通コミット検索・通知部と、
一の前記ユーザ端末から前記第一の差分データを受信した場合、前記第一の差分データを前記第二の記憶部に記憶するとともに、前記第一の差分データを前記第二の差分データとして、他の前記ユーザ端末に送信する変更ファイル受信・送信部と、
を備えることを要旨とする。
In order to achieve the above object, a software development support system according to one aspect of the present invention includes:
A software development support system that supports software development using Git, comprising a plurality of user terminals used by a plurality of users, and a server capable of mutually communicating with each of the plurality of user terminals via a network. hand,
Each of the plurality of user terminals,
At least an application for using Git, a source code editor, and add-in software running on the source code editor are operable,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
a commit list creation/sending unit that creates a commit list, which is a list of commit histories, and sends the commit list to the server when the commit history is changed;
a common commit reception/storage unit that receives the latest common commit from the server and stores it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creating/sending unit that sends the first differential data to the server;
When the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) is received from the server, based on the latest common commit, the received a change display unit that calculates the difference between the second difference data and the second file of itself, and displays the calculated difference on the screen of the source code editor of the display unit;
with
The server is
a second storage unit that stores the differential data of files managed for each branch, user, and file, and the commit list transmitted from the plurality of user terminals;
a commit list receiving/storage unit that, when receiving the commit list transmitted from each of the plurality of user terminals, stores the received commit list in the second storage unit;
Common commit retrieval and notification for retrieving the latest common commit based on the commit list transmitted from each of the plurality of user terminals, and transmitting the retrieved latest common commit to each of the plurality of user terminals. Department and
When the first difference data is received from one of the user terminals, the first difference data is stored in the second storage unit, and the first difference data is used as the second difference data, a change file reception/transmission unit that transmits to the other user terminal;
The gist is to provide

また、上記目的を達成するため、本発明の一態様に係るソフトウェア開発支援サーバは、
複数のユーザが利用する複数のユーザ端末とネットワークを介して相互に通信可能であり、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援サーバであって、
前記複数のユーザ端末は、それぞれ、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作するアドインソフトと、が動作可能であり、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記ソフトウェア開発支援サーバに送信するコミットリスト作成・送信部と、
前記ソフトウェア開発支援サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶部と、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記ソフトウェア開発支援サーバに送信する変更ファイル作成・送信部と、
前記ソフトウェア開発支援サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示部と、
を備えており、
ブランチ、ユーザ及びファイルごとに管理されたファイルの前記差分データと、前記複数のユーザ端末から送信された前記コミットリストと、を記憶する第二の記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストを受信した場合、受信した前記コミットリストを前記第二の記憶部に記憶するコミットリスト受信・記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストに基づいて、前記最新の共通コミットを検索し、検索した前記最新の共通コミットを前記複数のユーザ端末のそれぞれに送信する共通コミット検索・通知部と、
一の前記ユーザ端末から前記第一の差分データを受信した場合、前記第一の差分データを前記第二の記憶部に記憶するとともに、前記第一の差分データを前記第二の差分データとして、他の前記ユーザ端末に送信する変更ファイル受信・送信部と、
を備えることを要旨とする。
Further, in order to achieve the above object, a software development support server according to an aspect of the present invention includes:
A software development support server capable of communicating with a plurality of user terminals used by a plurality of users via a network and supporting software development using Git,
Each of the plurality of user terminals,
At least an application for using Git, a source code editor, and add-in software running on the source code editor are operable,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
a commit list creation/sending unit that creates a commit list, which is a list of commit histories, when the commit history is changed, and sends the commit list to the software development support server;
a common commit reception/storage unit that receives the latest common commit from the software development support server and stores it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creation/transmission unit that transmits the first difference data to the software development support server;
When receiving the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) from the software development support server, based on the latest common commit a change display unit that calculates the difference between the received second difference data and the second file of its own, and displays the calculated difference on the screen of the source code editor of the display unit;
and
a second storage unit that stores the differential data of files managed for each branch, user, and file, and the commit list transmitted from the plurality of user terminals;
a commit list receiving/storage unit that, when receiving the commit list transmitted from each of the plurality of user terminals, stores the received commit list in the second storage unit;
Common commit retrieval and notification for retrieving the latest common commit based on the commit list transmitted from each of the plurality of user terminals, and transmitting the retrieved latest common commit to each of the plurality of user terminals. Department and
When the first difference data is received from one of the user terminals, the first difference data is stored in the second storage unit, and the first difference data is used as the second difference data, a change file reception/transmission unit that transmits to the other user terminal;
The gist is to provide

また、上記目的を達成するため、本発明の一態様に係るソフトウェア開発支援プログラムは、
複数のユーザが利用する複数のユーザ端末と、該複数のユーザ端末のそれぞれとネットワークを介して相互に通信可能なサーバと、を備え、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援システムにおける前記ユーザ端末のためのソフトウェア開発支援プログラムであって、
前記複数のユーザ端末は、それぞれ、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、を備え、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作する前記ソフトウェア開発支援プログラムと、が動作可能であり、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記サーバに送信するコミットリスト作成・送信ステップと、
前記サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶ステップと、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記サーバに送信する変更ファイル作成・送信ステップと、
前記サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示ステップと、
を前記ユーザ端末に実行させることを要旨とする。
Further, in order to achieve the above object, a software development support program according to one aspect of the present invention includes:
A software development support system for supporting software development using Git, comprising a plurality of user terminals used by a plurality of users, and a server capable of communicating with each of the plurality of user terminals via a network. A software development support program for a user terminal,
Each of the plurality of user terminals,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
At least an application for using Git, a source code editor, and the software development support program running on the source code editor are operable,
a commit list creation/send step of creating a commit list, which is a list of commit histories, and sending the commit list to the server when the commit history is changed;
a common commit receiving/storing step of receiving the latest common commit from the server and storing it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creating/sending step of sending the first differential data to the server;
When the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) is received from the server, based on the latest common commit, the received a change display step of calculating the difference between the second difference data and the second file of itself, and displaying the calculated difference on the screen of the source code editor of the display unit;
is to be executed by the user terminal.

本発明によれば、Gitのホスティングサービスのサーバにプッシュする以前において、メンバ間のコミュニケーションを十分に図ることができ、ソフトウェアの品質を向上させることができる。 According to the present invention, it is possible to sufficiently facilitate communication between members before pushing the software to the Git hosting service server, thereby improving the quality of the software.

本発明の実施の形態に係るソフトウェア開発支援システムの概略構成図である。1 is a schematic configuration diagram of a software development support system according to an embodiment of the present invention; FIG. 本発明の実施の形態に係るソフトウェア開発支援サーバのデータ管理の模式図である。4 is a schematic diagram of data management of the software development support server according to the embodiment of the present invention; FIG. 本発明の実施の形態に係るソフトウェア開発支援システムの共通コミットの概念を説明する図である。FIG. 2 is a diagram illustrating the concept of common commit in the software development support system according to the embodiment of the present invention; FIG. 図5とともに、本発明の実施の形態に係るソフトウェア開発支援システムにおいて、ソフトウェア開発支援サーバとユーザ端末の間のデータ管理を模式的に示す図である。FIG. 5, together with FIG. 5, is a diagram schematically showing data management between a software development support server and a user terminal in the software development support system according to the embodiment of the present invention; 図4とともに、本発明の実施の形態に係るソフトウェア開発支援システムにおいて、ソフトウェア開発支援サーバとユーザ端末の間のデータ管理を模式的に示す図である。FIG. 4, together with FIG. 4, is a diagram schematically showing data management between a software development support server and a user terminal in the software development support system according to the embodiment of the present invention; 本発明の実施の形態に係るソフトウェア開発支援システムにおいてユーザ端末に表示される画面例を示す図である。It is a figure which shows the example of a screen displayed on a user terminal in the software development support system which concerns on embodiment of this invention. 本発明の実施の形態に係るソフトウェア開発支援システムにおいてユーザ端末に表示される画面例を示す図である。It is a figure which shows the example of a screen displayed on a user terminal in the software development support system which concerns on embodiment of this invention. 本発明の実施の形態に係るソフトウェア開発支援システムのコミットリスト送信処理の流れを示すローチャートである。4 is a flow chart showing the flow of commit list transmission processing of the software development support system according to the embodiment of the present invention; 本発明の実施の形態に係るソフトウェア開発支援システムの変更ファイル送信処理の流れを示すローチャートである。4 is a flowchart showing the flow of change file transmission processing of the software development support system according to the embodiment of the present invention; 本発明の実施の形態に係るソフトウェア開発支援システムの変更ファイル受信処理の流れを示すフローチャートである。7 is a flow chart showing the flow of change file reception processing of the software development support system according to the embodiment of the present invention; 本発明の実施の形態に係るソフトウェア開発支援システムにおけるソフトウェア開発支援サーバ及びユーザ端末の機能を説明する図である。It is a figure explaining the function of the software development support server and user terminal in the software development support system which concerns on embodiment of this invention.

以下、本発明の実施の形態について図面を用いて説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.

<ソフトウェア開発支援システムの構成>
図1は、本発明の実施の形態に係るソフトウェア開発支援システム10の概略構成図である。ソフトウェア開発支援システム10は、Gitを利用したソフトウェア開発を支援する情報処理システムであり、より詳しくは、例えば、GitHub(登録商標)などのGitのホスティングサービスを利用してソフトウェア開発を行う場合に好適に適用できる情報処理システムである。ソフトウェア開発支援システム10には、Gitのホスティングサービスを提供するサーバ(以下、Gitホスティングサービス提供サーバという) 4にプッシュする以前であっても、ソフトウェア開発者間のコミュニケーションを十分に図ることができるとともにソフトウェアの品質を向上させることができる仕組みが設けられている。以下、本実施の形態では、ソフトウェア開発支援システム10により提供されるサービスを、Git用ソフトウェア開発支援サービスと称して説明する。
<Configuration of software development support system>
FIG. 1 is a schematic configuration diagram of a software development support system 10 according to an embodiment of the present invention. The software development support system 10 is an information processing system that supports software development using Git. More specifically, it is suitable for software development using a Git hosting service such as GitHub (registered trademark). It is an information processing system that can be applied to The software development support system 10 has a server that provides Git hosting services (hereinafter referred to as a Git hosting service providing server) 4. Even before pushing to the server 4, software developers can sufficiently communicate with each other. A mechanism is provided to improve the quality of the software. Hereinafter, in this embodiment, the service provided by the software development support system 10 will be referred to as a software development support service for Git.

ソフトウェア開発支援システム10は、ソフトウェア開発支援サーバ1と、複数のユーザ端末2と、を備える。ソフトウェア開発支援サーバ1は、Git用ソフトウェア開発支援サービスを提供する事業者が管理するサーバ措置であり、ユーザ端末2は、ソフトウェア開発者(以下、ユーザという)が用いる端末装置である。ソフトウェア開発支援サーバ1及び複数のユーザ端末2は、それぞれ、例えば、インターネット網、公衆網などからなる通信ネットワーク3に接続されている。また、ソフトウェア開発支援サーバ1及びユーザ端末2は、それぞれ、通信ネットワーク3を介して、Gitホスティングサービス提供サーバ4と接続されている。 A software development support system 10 includes a software development support server 1 and a plurality of user terminals 2 . The software development support server 1 is a server device managed by a company that provides software development support services for Git, and the user terminal 2 is a terminal device used by a software developer (hereinafter referred to as a user). A software development support server 1 and a plurality of user terminals 2 are each connected to a communication network 3 such as the Internet network or a public network. Also, the software development support server 1 and the user terminal 2 are each connected to a Git hosting service providing server 4 via a communication network 3 .

ソフトウェア開発支援サーバ1は、記憶部11と、制御部12と、通信部13と、を備える。 The software development support server 1 includes a storage unit 11 , a control unit 12 and a communication unit 13 .

記憶部11は、例えば、メモリ及びハードディスク等から構成され、Git用ソフトウェア開発支援サービスに関するデータやGit用ソフトウェア開発支援サービスを実行するためのプログラムを記憶する。 The storage unit 11 includes, for example, a memory and a hard disk, and stores data related to the Git software development support service and programs for executing the Git software development support service.

制御部12は、例えば、CPU及びメモリ等から構成され、記憶部11の制御や、各種データの転送、種々の演算、データの一時的な格納等を行うことにより、Git用ソフトウェア開発支援サービスの各種処理を実行する。 The control unit 12 is composed of, for example, a CPU and a memory, etc., and controls the storage unit 11, transfers various data, performs various calculations, temporarily stores data, etc., thereby providing software development support services for Git. Executes various processing.

通信部13は、通信ネットワーク3を介してGitホスティングサービス提供サーバ4及びユーザ端末2とデータの送受信を行う。 The communication unit 13 transmits and receives data to and from the Git hosting service providing server 4 and the user terminal 2 via the communication network 3 .

なお、ソフトウェア開発支援サーバ1は、物理的に一つからなる装置の他、複数の装置がネットワーク接続されたシステムから構成されてもよく、複数の装置で構成された場合には、同一の場所にすべてが設置されていてもよいし、複数の場所に分散して設置されていてもよい。 The software development support server 1 may consist of a single physical device, or may consist of a system in which a plurality of devices are connected to a network. may be installed in one location, or may be installed in a plurality of locations.

ユーザ端末2は、記憶部21と、制御部22と、通信部23と、UI(User Interface)部24と、を備える。ユーザ端末2は、例えば、パーソナルコンピュータが好適であるが、スマートフォンやタブレット端末でもよい。 The user terminal 2 includes a storage section 21 , a control section 22 , a communication section 23 and a UI (User Interface) section 24 . For example, the user terminal 2 is preferably a personal computer, but may be a smart phone or a tablet terminal.

記憶部21は、例えば、メモリ及びハードディスク等から構成され、Gitに関するデータやアプリケーションプログラムAPを記憶する。ここで、Gitに関するデータには、Gitホスティングサービス提供サーバ4から送信されるデータ、ソフトウェア開発支援サーバ1から送信されるデータ、ユーザ自らが作成したデータなどが含まれる。アプリケーションプログラムAPには、Gitのアプリ、例えば、Visual Studio Code(登録商標)などのソースコードエディタ、ソースコードエディタ上で動作するプラグインPLなどが含まれる。このソースコードエディタ上で動作するプラグインPLは、ソフトウェア開発支援サーバ1がユーザ端末2に提供するソフトウェアである。ユーザは、ユーザ端末2にプラグインPLをインストールすることにより、Git用ソフトウェア開発支援サービスを享受することが可能となる。 The storage unit 21 includes, for example, a memory and a hard disk, and stores Git-related data and application programs AP. Here, data related to Git includes data transmitted from the Git hosting service providing server 4, data transmitted from the software development support server 1, data created by the user himself/herself, and the like. The application program AP includes a Git application, a source code editor such as Visual Studio Code (registered trademark), a plug-in PL operating on the source code editor, and the like. A plug-in PL that operates on this source code editor is software provided to the user terminal 2 by the software development support server 1 . By installing the plug-in PL in the user terminal 2, the user can enjoy the software development support service for Git.

制御部22は、例えば、CPU及びメモリ等から構成され、記憶部21の制御や、各種データの転送、種々の演算、データの一時的な格納等を行うことにより、GitホスティングサービスやGit用ソフトウェア開発支援サービスのユーザ端末側の各種処理を実行する。 The control unit 22 includes, for example, a CPU, a memory, and the like, and controls the storage unit 21, transfers various data, performs various calculations, temporarily stores data, and the like, thereby providing Git hosting services and Git software. Executes various processes on the user terminal side of the development support service.

通信部23は、通信ネットワーク3を介してソフトウェア開発支援サーバ1、Gitホスティングサービス提供サーバ4、及び他のユーザ端末2とデータの送受信を行う。 The communication unit 23 transmits and receives data to and from the software development support server 1 , the Git hosting service providing server 4 , and other user terminals 2 via the communication network 3 .

UI部24は、ユーザ端末2の入力部及び出力部であり、ユーザからの入力操作を受け付けるとともに、入力操作に応じて制御部22にて処理された結果を出力するようになっている。入力部としては、例えば、キーボード、マウス、タッチパネルなどが想定され、出力部としては、例えば、ディスプレイ、スピーカなどが想定される。 The UI unit 24 is an input unit and an output unit of the user terminal 2, receives input operations from the user, and outputs results processed by the control unit 22 according to the input operations. For example, a keyboard, a mouse, a touch panel, etc. are assumed as the input unit, and a display, a speaker, etc. are assumed as the output unit.

なお、ユーザ端末2においてGit用ソフトウェア開発支援サービスを利用するには、ソフトウェア開発支援サーバ1にログインする(具体的には、メールアドレスなどのユーザIDとパスワードを入力してソフトウェア開発支援サーバ1に認証される)必要がある。ユーザ端末2においてソースコードエディタを起動している状態でソフトウェア開発支援サーバ1にログインすると、ソースコードエディタ上でプラグインPLが起動し、Git用ソフトウェア開発支援サービスを利用することが可能となる。 To use the software development support service for Git on the user terminal 2, log in to the software development support server 1 (specifically, enter a user ID such as an e-mail address and a password to access the software development support server 1). be authenticated). When the user logs in to the software development support server 1 while the source code editor is running on the user terminal 2, the plug-in PL starts up on the source code editor, making it possible to use the software development support service for Git.

本実施の形態では、ソフトPLが起動した状態において作業モードが2つ用意されている。ユーザはいずれかの作業モードを選択することができる。一つは、リアルタイムモードであり、もう一つは、非リアルタイムモードである。リアルタイムモードは、他のユーザの変更作業(例えば、ソースコードの変更、コメント入力など)が自らのユーザ端末2において即時反映される作業モードであり、ソフトウェア開発支援サーバ1とユーザ端末2間のデータ同期処理が頻繁に実行されるようになっている(例えば、変更のたび即時、1秒ごとなど)。一方、非リアルタイムモードは、他のユーザの変更作業が自らのユーザ端末2においてすぐには反映されない作業モードであり、ソフトウェア開発支援サーバ1とユーザ端末2間のデータ同期処理はリアルタイムモードよりも間隔を空けて実行されるようになっている(例えば、5分ごとなど)。非リアルタイムモードは、データ同期処理の間隔も長く、また、他のユーザの作業に基づく変更表示も最小限しか表示されないので、ユーザが自分の作業に集中できる作業モードとなっている。 In this embodiment, two work modes are prepared when the software PL is activated. The user can select either working mode. One is real-time mode and the other is non-real-time mode. The real-time mode is a work mode in which other users' modification work (for example, source code modification, comment input, etc.) is immediately reflected in their own user terminal 2, and the data between the software development support server 1 and the user terminal 2 Synchronization is set to run frequently (eg, immediately after each change, every second, etc.). On the other hand, the non-real-time mode is a work mode in which changes made by other users are not immediately reflected in one's own user terminal 2, and data synchronization processing between the software development support server 1 and the user terminal 2 is performed more frequently than in the real-time mode. is set to be executed after every 5 minutes (for example, every 5 minutes). In the non-real-time mode, the interval between data synchronization processing is long, and changes based on the work of other users are displayed to a minimum, so that the user can concentrate on his work.

なお、本実施の形態に係るGit用ソフトウェア開発支援サービスの各種処理を実行するプログラム、すなわち、ソフトウェア開発支援サーバ1用のプログラム、及びユーザ端末2のプラグインPLのプログラムは、上述したメモリなどの主記憶装置やハードディスクなどの補助記憶装置に格納されているものである。そして、このプログラムは、ハードディスク、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)などのコンピュータが読み取り可能な記録媒体に記録することも、通信ネットワークを介して配信することも可能である。 A program for executing various processes of the software development support service for Git according to the present embodiment, that is, a program for the software development support server 1 and a program for the plug-in PL of the user terminal 2 are stored in the above-described memory or the like. It is stored in a main memory or an auxiliary memory such as a hard disk. This program can be recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD (Compact Disc), a DVD (Digital Versatile Disc), and a BD (Blu-ray (registered trademark) Disc). Delivery via a communication network is also possible.

<ソフトウェア開発支援システムのデータ管理>
次に、図2~図5を用いて、ソフトウェア開発支援システム10のデータ管理について説明する。図2は、ソフトウェア開発支援サーバ1のデータ管理の模式図である。
<Data management of software development support system>
Next, data management of the software development support system 10 will be described with reference to FIGS. 2 to 5. FIG. FIG. 2 is a schematic diagram of data management of the software development support server 1. As shown in FIG.

図2に示すように、ソフトウェア開発支援サーバ1の記憶部11は、プロジェクトごとにデータを管理している。ここで、プロジェクトとは、Gitホスティングサービス提供サーバ4に作成されたレポジトリのことであり、本実施の形態では、このレポジトリ単位にデータが管理されている。また、各プロジェクトのデータは、大別して、メタデータと、ソースコートと、に分類される。メタデータは、プロジェクトに関するメタデータ、及びユーザに関するメタデータなどがある。プロジェクトに関するメタデータには、例えば、プロジェクトの難易度、ソースコードの更新頻度、プロジェクトの参加者などが含まれ、ユーザに関するメタデータには、例えば、ユーザの得意なプログラミング言語、コミュニケーション言語、レイティング(星の数など)、仕事の特徴、性格などが含まれる。 As shown in FIG. 2, the storage unit 11 of the software development support server 1 manages data for each project. Here, a project is a repository created in the Git hosting service providing server 4, and in this embodiment, data is managed in units of this repository. Also, the data of each project is roughly classified into metadata and source code. Metadata includes project-related metadata and user-related metadata. Project metadata includes, for example, project difficulty, source code update frequency, project participants, etc. User metadata includes, for example, the user's favorite programming language, communication language, rating ( stars, etc.), job characteristics, personality, etc.

ここで、ソースコードに着目すると、本実施の形態のソースコードは、ブランチ(branch)ごとに管理されており、さらにブランチ内ではユーザごとに管理されている。例えば、図2に示す例は、ブランチAのソースコードをユーザA、B及びCの3人で協働してソフトウェア開発している場合、ブランチBのソースコードをユーザD及びEの2人で協働してソフトウェア開発している場合のデータ管理を模式的に示している。 Focusing on the source code here, the source code of the present embodiment is managed for each branch, and within each branch, it is managed for each user. For example, the example shown in FIG. It schematically shows data management in the case of collaborative software development.

従来においては、複数のユーザが協働してソフトウェア開発を行う場合、各ユーザは、他のユーザの作業の影響を受けないようにするため、メインのブランチから自分専用のブランチを作成し、作業終了後にメインのブランチに自分のブランチの変更を取り込むという流れで作業をしていた。つまり、ユーザごとにブランチが作成されていた。本実施の形態の協働方法は、この従来のやり方とは異なり、図2に示すようなデータ管理を行っているため、同一のブランチにおいて複数のユーザが作業することが可能となっている。勿論、従来のように異なるブランチ間で複数のユーザが作業することも可能である。 In the past, when multiple users collaborated on software development, each user created his/her own branch from the main branch to avoid being affected by the work of other users. After finishing, I worked in the flow of incorporating the changes of my branch into the main branch. In other words, a branch was created for each user. Unlike this conventional method, the cooperation method of the present embodiment manages data as shown in FIG. 2, so that multiple users can work in the same branch. Of course, it is also possible for a plurality of users to work between different branches as before.

なお、後述する図4及び図5において説明するが、ソースコードは、ユーザ端末2においても、ソフトウェア開発支援サーバ1と同様に、ブランチ(branch)及びユーザごとに管理されている。ソフトウェア開発支援サーバ1とユーザ端末2は、ソースコードに関して同期を取る必要があるからである。 As will be described later with reference to FIGS. 4 and 5, the source code is managed for each branch and user in the user terminal 2 as well as in the software development support server 1. FIG. This is because the software development support server 1 and the user terminal 2 need to be synchronized with respect to the source code.

また、本実施の形態の記憶部11に記憶されるソースコードは、データトラフィックを考慮して、変更されたデータ(差分データ)のみであり、ソースコード全体のデータは、Gitホスティングサービス提供サーバ4において管理されている。より詳しくは、本実施の形態のソースコードの差分データは、ユーザ間における最新の共通コミット(commit)からの差分データとなっている。 In addition, the source code stored in the storage unit 11 of the present embodiment is only changed data (difference data) in consideration of data traffic, and the data of the entire source code is stored in the Git hosting service providing server 4 managed by More specifically, the source code difference data of the present embodiment is difference data from the latest common commit between users.

ここで、図3を用いて最新の共通コミットの概念について説明する。図3は、ブランチAのソースコードをユーザA、ユーザB及びユーザCの3人で作業している場合の最新の共通コミットを説明する図である。 Here, the concept of the latest common commit will be described with reference to FIG. FIG. 3 is a diagram for explaining the latest common commit when three people, user A, user B, and user C, are working on the source code of branch A. As shown in FIG.

本実施の形態のユーザ端末2は、所定の契機(例えば、コミットした場合、ブランチ切り替えをした場合などコミット履歴が変更される場合)においてコミットリストを作成し、作成したコミットリストをソフトウェア開発支援サーバ1に送信するようになっている。ここで、コミットリストは、コミット履歴を示す一覧リストであり、コミットを一意に識別可能なID(例えば、コミットのSHA-1チェックサムなど。以下、コミットIDという)の直近数エントリ(例えば、直近10エントリなど)を、コミットした日時が新しい順序で並べた一覧リストである。例えば、図3は、ユーザAが用いるユーザ端末2がユーザAのコミットリスト、ユーザBが用いるユーザ端末2がユーザBのコミットリスト、ユーザCが用いるユーザ端末2がユーザCのコミットリストをソフトウェア開発支援サーバ1に送信する様子を示している。 The user terminal 2 of the present embodiment creates a commit list at a predetermined opportunity (for example, when a commit is made, when a commit history is changed such as when a branch is switched), and sends the created commit list to the software development support server. 1. Here, the commit list is a list showing the commit history, and the latest number of entries (for example, the latest 10 entries, etc.) are arranged in chronological order of date and time of commit. For example, in FIG. 3, the user terminal 2 used by user A is user A's commit list, the user terminal 2 used by user B is user B's commit list, and the user terminal 2 used by user C is user C's commit list. A state of transmission to the support server 1 is shown.

ソフトウェア開発支援サーバ1は、同一のブランチで作業する各ユーザからコミットリストを受信すると、各コミットリストを比較して、最新の共通のコミットIDを検索する。図3に示した例では、102が最新の共通コミットのコミットIDとなる。ソフトウェア開発支援サーバ1は、最新の共通コミットを決定すると、決定した最新の共通コミットのコミットIDを同一のブランチで作業する各ユーザに送信する。図3に示した例では、ソフトウェア開発支援サーバ1は、ユーザA、ユーザB及びユーザCのユーザ端末2それぞれに、102を示すコミットIDを送信する。 When the software development support server 1 receives commit lists from users working on the same branch, it compares the commit lists and searches for the latest common commit ID. In the example shown in FIG. 3, 102 is the commit ID of the latest common commit. After determining the latest common commit, the software development support server 1 transmits the commit ID of the determined latest common commit to each user working on the same branch. In the example shown in FIG. 3, the software development support server 1 transmits a commit ID indicating 102 to each of the user terminals 2 of user A, user B, and user C. In the example shown in FIG.

ユーザ端末2は、最新の共通コミットのコミットIDを受信すると、受信した最新の共通コミットのコミットIDを記憶部21に記憶する。この結果、ユーザ端末2は、ユーザがソースコードエディタ上で所定のファイルに対して作業を行い、所定のファイルのソースコードが変更された場合、この変更が発生した所定のファイルのソースコードと、記憶部21に記憶された最新の共通コミットのコミットIDが示す所定のファイルのソースコードと、を比較してその差分データを作成し、作成した差分データをソフトウェア開発支援サーバ1に送信するようになっている。そして、ソフトウェア開発支援サーバ1は、ユーザ端末2から送信された差分データを記憶部11に記憶し、サーバ側でも差分データを管理するようになっている。 Upon receiving the commit ID of the latest common commit, the user terminal 2 stores the received commit ID of the latest common commit in the storage unit 21 . As a result, when the user performs work on a predetermined file on the source code editor and the source code of the predetermined file is changed, the user terminal 2 displays the source code of the predetermined file in which the change occurred, The source code of a predetermined file indicated by the commit ID of the latest common commit stored in the storage unit 21 is compared to create difference data, and the created difference data is transmitted to the software development support server 1. It's becoming The software development support server 1 stores the difference data transmitted from the user terminal 2 in the storage unit 11, and the server side also manages the difference data.

なお、差分データは、2つのファイル間の違いを出力する既存のプログラム(例えば、diffなど)を用いて作成される。差分データは、例えば、送信元のユーザを一意に示す情報(例えば、ユーザIDなど)、レポジトリ(プロジェクト)を一意に識別可能な情報、ブランチを一意に識別可能な情報、ファイル名、変更箇所を示す情報(例えば、ソースコードの行)、変更内容などの情報を含んで構成される。また、所定のファイルのソースコードが変更された場合とは、詳しくは、レポジトリにある既存ファイルに対する変更、レポジトリにない新ファイルの追加、レポジトリにある既存ファイルの削除のいずれの場合も含まれる。 Note that the difference data is created using an existing program (for example, diff) that outputs the difference between two files. Difference data includes, for example, information that uniquely identifies the source user (e.g., user ID), information that uniquely identifies the repository (project), information that uniquely identifies the branch, file name, and changes. It includes information such as information to indicate (for example, line of source code), change content, and the like. Further, when the source code of a given file is changed, in detail, any of the cases of changing an existing file in the repository, adding a new file not in the repository, and deleting an existing file in the repository are included.

図4及び図5は、このようなソフトウェア開発支援サーバ1とユーザ端末2間のデータ管理方法を具体的に説明する図であり、ソフトウェア開発支援サーバ1とユーザ端末2の間においてデータの整合性を保つための同期処理を説明する模式図である。なお、図4及び図5は、ブランチAのソースコードをユーザA、ユーザB及びユーザCの3人で作業している場合であって、ユーザAがファイルγを変更した場合を示している。また、図4及び図5は、所定の一ファイルをやりとりする場合を示しているが、上述した同期処理のタイミングにおいて対象となるファイルが複数ある場合には、複数のファイルのそれぞれに対して、差分データのやりとりが発生する。 4 and 5 are diagrams specifically explaining the data management method between the software development support server 1 and the user terminal 2. Data consistency between the software development support server 1 and the user terminal 2 is shown in FIGS. FIG. 10 is a schematic diagram for explaining synchronization processing for maintaining 4 and 5 show the case where three people, user A, user B, and user C, are working on the source code of branch A, and user A changes file γ. 4 and 5 show the case of exchanging one predetermined file, but if there are a plurality of target files at the timing of the synchronization processing described above, for each of the plurality of files, Exchange of differential data occurs.

図4は、ユーザAのユーザ端末2からソフトウェア開発支援サーバ1へのファイルγのアップロードの様子を示している。ユーザAがユーザ端末Aのソースコードエディタ上においてファイルγを変更した場合、プラグインPLは、ファイルγの共通コミットからの差分データを作成し、作成したファイルγの差分データをソフトウェア開発支援サーバ1に送信する。ソフトウェア開発支援サーバ1は、ユーザAからのファイルγの差分データを受信すると、ファイルγの差分データを記憶部11のユーザAのデータを管理する領域に記憶するとともに、ユーザAによるファイルγの差分データを同一ブランチで作業をする他のユーザ、つまりユーザB及びユーザCに送信する。 FIG. 4 shows how the file γ is uploaded from the user terminal 2 of the user A to the software development support server 1 . When the user A changes the file γ on the source code editor of the user terminal A, the plug-in PL creates differential data from the common commit of the file γ and transfers the created differential data of the file γ to the software development support server 1 Send to When receiving the difference data of the file γ from the user A, the software development support server 1 stores the difference data of the file γ in the area for managing the data of the user A in the storage unit 11, and stores the difference data of the file γ by the user A. Send the data to other users, user B and user C, who work in the same branch.

図5は、ソフトウェア開発支援サーバ1からユーザBのユーザ端末2へのファイルγのダウンロードの様子を示している。なお、ユーザCのユーザ端末2に対しても同様のダウンロードは実行されるが図示を省略する。 FIG. 5 shows how the file γ is downloaded from the software development support server 1 to the user terminal 2 of the user B. As shown in FIG. A similar download is executed for the user terminal 2 of the user C, but the illustration is omitted.

ここで、ユーザBのユーザ端末2のプラグインPLは、ユーザAが変更したファイルγの差分データを受信すると、ユーザAが変更したファイルγの差分データを記憶部21に記憶するとともに同一ブランチで作業する他のユーザによってファイルγが変更されたことを示す変更表示をユーザBのユーザ端末2のソースコードエディタ上にて行う。この変更表示は、受信したファイルγの共通コミットからの差分データと、ユーザBの現在のファイルγと、を比較しての差分を表示するものである。各ユーザ端末2は、同一の共通コミットを有しているため、この共通コミットに基づいて変更表示の機能を実現することが可能となっている。なお、上述したように、この差分データの受信及び変更表示のタイミングは、ユーザの作業モードによって異なる。 Here, when the plug-in PL of the user terminal 2 of the user B receives the difference data of the file γ changed by the user A, the plug-in PL stores the difference data of the file γ changed by the user A in the storage unit 21 and stores the difference data of the file γ changed by the user A in the same branch. A change display indicating that the file γ has been changed by another working user is displayed on the source code editor of user B's user terminal 2 . This change display compares the difference data from the common commit of the received file γ with the current file γ of user B and displays the difference. Since each user terminal 2 has the same common commit, it is possible to implement the change display function based on this common commit. It should be noted that, as described above, the timing of receiving this differential data and displaying the change differs depending on the user's work mode.

図6及び図7に、ユーザBがリアルタイムモードで作業している場合に表示される画面例を示す。図6及び図7において、領域d1は、元々のソースコードエディタの画面であり、領域d2がプラグインPLの機能による画面である。つまり、領域d1は、ユーザがソフトウェア開発支援サーバ1にログインする前において表示されている領域であり(従来のソースコードエディタの表示画面)、領域d2は、ユーザがソフトウェア開発支援サーバ1にログインした後に表示される領域である。なお、図6は、ソースコードエディタでREADME.mdを開いている状態、図7は、ソースコードエディタでmain.jsを開いている状態を示している。 6 and 7 show examples of screens displayed when user B is working in the real-time mode. 6 and 7, area d1 is the screen of the original source code editor, and area d2 is the screen of the function of the plug-in PL. That is, the area d1 is the area displayed before the user logs into the software development support server 1 (the display screen of the conventional source code editor), and the area d2 is the area displayed after the user logs into the software development support server 1. This is the area that will be displayed later. 6 shows the state where README.md is opened in the source code editor, and FIG. 7 shows the state where main.js is opened in the source code editor.

ユーザがソフトウェア開発支援サーバ1にログインすると、Git用ソフトウェア開発支援サービスとして、作業モードがリアルタイムモードの場合、(1)他のユーザにより変更が行われたファイルのハイライト表示d201、(2)画面上に表示されているファイル(ソースコード)に対して他のユーザにより変更された変更箇所を示すハイライト表示202、(3)領域d1のスクロールバー上における変更箇所のマーカ表示203、(4)ユーザ間のコメントのやりとりの表示206が、ユーザ端末2の画面上に表示される。 When a user logs in to the software development support server 1, as a software development support service for Git, if the work mode is the real-time mode, (1) files modified by other users are highlighted d201, and (2) the screen (3) Highlight display 202 indicating a change portion that has been changed by another user in the file (source code) displayed above, (3) Marker display 203 of the change portion on the scroll bar of the area d1, (4) A display 206 of exchange of comments between users is displayed on the screen of the user terminal 2 .

ハイライト表示d201は、現在作業をしているプロジェクトに係わる全ファイルの一覧の中から、他のユーザにより変更が行われたファイルをハイライトして表示するものである。これにより、ユーザが今開いていないファイルであっても他のユーザにより変更が行われたファイルを視覚的に把握することができる。 The highlight display d201 highlights and displays files that have been changed by other users from among a list of all files related to the project currently being worked on. As a result, even if the file is not currently open by the user, it is possible to visually grasp the file that has been changed by another user.

ハイライト表示202は、今開いているファイル(ソースコード)において、ユーザBの現在のソースコードと他のユーザ(具体的には、ユーザA、ユーザC)のソースコードとを比較して、他のユーザにより変更が行われた箇所をハイライトして表示するものである。これは、受信した差分データに基づいて、自分のソースコードと他のユーザのソースコードの差分から変更箇所を作成し、表示するものである。例えば、図6においては28行目及び29行目がハイライト表示されている。これにより、ユーザは今開いているファイルに関して他のユーザにより変更が行われたこと、変更が行われた箇所を視覚的に把握することができる。 Highlight display 202 compares the current source code of user B with the source code of other users (specifically, user A and user C) in the currently opened file (source code). This is to highlight and display the part changed by the user. Based on the received difference data, this creates and displays changed portions from the differences between the user's own source code and other users' source codes. For example, in FIG. 6, the 28th and 29th lines are highlighted. As a result, the user can visually recognize that the currently open file has been changed by another user and the location where the change has been made.

なお、このハイライト表示202は、他のユーザにより変更が行われた箇所を示すだけであり、初期表示において他のユーザによる変更内容は示されない。また、各ユーザとの差分も示されない。 Note that this highlight display 202 only indicates the portions that have been changed by other users, and the content of changes made by other users is not shown in the initial display. Moreover, the difference with each user is not shown, either.

つまり、ハイライト表示202の初期表示では、他の全ユーザ(具体的には、ユーザA、ユーザC)によって変更された箇所の合計がハイライト表示される。なお、本実施の形態では、個々のユーザを選択することも可能であり、寄稿者204に表示されたユーザを選択することにより、選択されたユーザとの差分を表示することも可能である。例えば、図6に示した画面例において、ユーザAが28行目及び29行目を変更した場合、初期表示では28行目及び29行目はハイライト表示202が行われるが、ユーザCを選択すると、ハイライト表示202は行われない。 That is, in the initial display of the highlight display 202, the total number of parts changed by all other users (specifically, user A and user C) is highlighted. In this embodiment, it is also possible to select individual users, and by selecting a user displayed in contributor 204, it is also possible to display the difference from the selected user. For example, in the screen example shown in FIG. 6, when user A changes the 28th and 29th lines, the 28th and 29th lines are highlighted 202 in the initial display, but user C selects Then, the highlight display 202 is not performed.

また、ハイライト表示202に対しては、ハイライト表示202の表示箇所をクリックすると、差分ハイライト表示202Nが行われる(図7参照)。差分ハイライト表示202Nは、今開いているファイル(ソースコード)に対して他のユーザが変更した内容を表示するものである。これにより、ユーザは今開いているファイルに関して他のユーザの変更内容を把握することができる。このように本実施の形態では、ソースコードの変更箇所を示すだけなく、ソースコードの変更内容も示すことができる。 Further, for the highlight display 202, when the display position of the highlight display 202 is clicked, a differential highlight display 202N is performed (see FIG. 7). The difference highlight display 202N displays the contents of changes made by other users to the currently opened file (source code). This allows the user to know what other users have changed about the currently open file. As described above, in this embodiment, it is possible to indicate not only the changed part of the source code but also the changed contents of the source code.

マーカ表示203は、今開いているファイル(ソースコード)において、ユーザBの現在のソースコードと他のユーザ(具体的には、ユーザA、ユーザC)のソースコードとを比較して、他のユーザにより変更が行われた箇所をスクロールバー上にマーカ表示するものである。マーカ位置及びマーカ範囲は、ソースコードの変更位置及び変更範囲をスクロールバー上で相対的に示しているものである。マーカ表示203も、ハイライト表示202と同様、初期表示においては、他の全ユーザ(具体的には、ユーザA、ユーザC)によって変更された箇所の合計が表示されるが、ユーザを選択すれば、選択したユーザとの差分がマーカ表示される。 The marker display 203 compares the current source code of user B with the source code of other users (specifically, user A and user C) in the currently opened file (source code), A marker is displayed on the scroll bar where the user has changed. The marker position and marker range relatively indicate the change position and change range of the source code on the scroll bar. As with the highlight display 202, the marker display 203 also initially displays the total number of parts changed by all other users (specifically, user A and user C). If so, the difference with the selected user is displayed as a marker.

領域d2は、ユーザ端末2に表示されているファイルと同一のファイルを作業しているユーザの一覧204と、ブランチの一覧205と、コメント表示欄206と、コメント入力欄207と、を備える。 The area d2 includes a list 204 of users working on the same file as the file displayed on the user terminal 2, a branch list 205, a comment display field 206, and a comment input field 207.

ユーザの一覧204は、ユーザ端末2に表示されているファイルと同一のファイルを作業しているユーザの一覧である。ユーザの一覧204においては、ユーザの選択も可能である。ユーザを選択した場合には、上述したように、ハイライト表示202及びマーカ表示203は、選択したユーザとの差分が表示されることとなる。 The user list 204 is a list of users working on the same file as the file displayed on the user terminal 2 . User selection is also possible in the list of users 204 . When a user is selected, as described above, the highlight display 202 and marker display 203 display the difference from the selected user.

ブランチの一覧205は、ブランチの一覧である。なお、本実施の形態では、同一ブランチで複数のユーザが作業していることを前提として説明をしているが、プラグインPLの機能はこれに限定されない。表示されたブランチの一覧の中からいずれかのブランチを選択することも可能である。ブランチを選択した場合には、選択したブランチとの差分が表示されることとなる。 The branch list 205 is a list of branches. In this embodiment, the explanation is given on the premise that a plurality of users are working on the same branch, but the function of the plug-in PL is not limited to this. It is also possible to select one of the branches from the displayed list of branches. If a branch is selected, the difference from the selected branch will be displayed.

コメント表示欄206は、他のユーザが入力したコメントが表示される欄であり、コメント入力欄207は、ユーザが他のユーザに対してコメントを入力する欄である。コメント入力欄207に入力された事項は、デフォルトでは、現在開いているファイルに対するコメントとして入力されが、これに限定されない。本実施の形態では、所定のファイル、所定のフォルダ、プロジェクト(リポジトリ)を指定することにより、指定した対象に対するコメントとして表示させることが可能である。例えば、フォルダを指定してコメントを入力した場合には、指定したファルダ配下の全ファイルに対するコメントとして扱われる。また、プロジェクト(リポジトリ)を指定してコメントを入力した場合には、指定したプロジェクト(リポジトリ)配下の全フォルダ、全ファイルに対するコメントとして扱われる。なお、ユーザが入力したコメントデータは、前述の差分データとして作成される。例えば、ファイルを指定したコメントを入力した場合には、送信元のユーザを一意に示す情報(例えば、ユーザIDなど)、レポジトリ(プロジェクト)を一意に識別可能な情報、ブランチを一意に識別可能な情報、ファイル名、コメントなどの情報を含んで構成される。 The comment display column 206 is a column for displaying comments input by other users, and the comment input column 207 is a column for users to input comments to other users. Matters entered in the comment entry field 207 are entered as comments for the currently opened file by default, but are not limited to this. In this embodiment, by designating a predetermined file, a predetermined folder, and a project (repository), it is possible to display comments on the designated target. For example, when a comment is entered by designating a folder, it is treated as a comment for all files under the designated folder. Also, when a project (repository) is specified and a comment is entered, it is treated as a comment for all folders and all files under the specified project (repository). Note that the comment data input by the user is created as the aforementioned difference data. For example, when a comment specifying a file is entered, information that uniquely identifies the source user (e.g., user ID), information that uniquely identifies the repository (project), information that uniquely identifies the branch It includes information such as information, file name, and comment.

なお、ユーザがソフトウェア開発支援サーバ1にログインした状態であっても、作業モードが非リアルタイムモードの場合には、領域d2は表示されない。すなわち、作業モードが非リアルタイムモードの場合、領域d1だけが表示され、Git用ソフトウェア開発支援サービスとして、(1)他のユーザにより変更が行われたファイルのハイライト表示d201、(2)領域d1のスクロールバー上における変更箇所のマーカ表示203、だけがユーザ端末2の画面上に表示される(図示せず)。作業モードが非リアルタイムモードは領域d2が表示されていないことから、非リアルタイムモードを、Git用ソフトウェア開発支援サービスにおいてパネルを閉じているモード、リアルタイムモードを、Git用ソフトウェア開発支援サービスのパネルを開いているモードともいう。パネルを閉じているモードでは、領域d2が表示されず、また変更箇所の表示も最小限であることから、ユーザは、自らの作業により集中することができる。 Note that even if the user has logged into the software development support server 1, the area d2 is not displayed if the work mode is the non-real-time mode. That is, when the work mode is the non-real-time mode, only area d1 is displayed, and as a software development support service for Git, (1) highlight display d201 of files modified by other users, (2) area d1 Only the marker display 203 of the changed part on the scroll bar of is displayed on the screen of the user terminal 2 (not shown). Since the area d2 is not displayed when the working mode is the non-real-time mode, the non-real-time mode is defined as the mode in which the Git software development support service panel is closed, and the real-time mode is defined as the Git software development support service panel open. It is also called a mode in which In the mode where the panel is closed, the area d2 is not displayed and the display of the changed parts is minimal, so that the user can concentrate more on his work.

このように本実施の形態では、一のユーザがユーザ端末2において所定のファイルに対してソースコードを変更する作業を実行した場合、プラグインPLが、ソフトウェア開発支援サーバ1を介して、同一ブランチで作業している他のユーザのユーザ端末2に対して、変更した所定のファイルの差分データを送信するので、同一ブランチで作業している各ユーザは、ユーザ端末2において他のユーザのソースコードの変更箇所や変更内容を確認することができる。また、ソースコードに関するコメントのやりとりもできるので、Gitのホスティングサービスのサーバにプッシュする以前の工程であっても、メンバ間のコミュニケーションを十分に図ることができ、結果としてソフトウェアの品質を向上させることが可能となっている。 As described above, in the present embodiment, when one user executes a work of changing the source code for a predetermined file on the user terminal 2, the plug-in PL is sent to the same branch via the software development support server 1. Since the difference data of the changed predetermined file is transmitted to the user terminals 2 of other users working in the same branch, each user working in the same branch can access the source code You can check the changed parts and the contents of the changes. In addition, comments on the source code can be exchanged, so even in the process before pushing to the Git hosting service server, communication between members can be sufficiently promoted, and as a result, the quality of the software can be improved. is possible.

<ソフトウェア開発支援システムの動作>
次に、図8~図10を用いて、本実施の形態に係るソフトウェア開発支援システム10の動作について説明する。なお、以下の処理は、前提として、ユーザはユーザ端末2を介してソフトウェア開発支援サーバ1にログインしている状態にあるものとして説明する。
<Operation of Software Development Support System>
Next, operations of the software development support system 10 according to the present embodiment will be described with reference to FIGS. 8 to 10. FIG. It should be noted that the following processing will be described on the assumption that the user is logged into the software development support server 1 via the user terminal 2 .

まず、図8を用いて、ソフトウェア開発支援システム10のコミットリスト送信処理について説明する。図8は、ソフトウェア開発支援システム10のコミットリスト送信処理の流れを示すフローチャートである。コミットリスト送信処理は、ユーザ端末2がソフトウェア開発支援サーバ1にコミットリストを送信する処理である。 First, commit list transmission processing of the software development support system 10 will be described with reference to FIG. FIG. 8 is a flow chart showing the commit list transmission process of the software development support system 10 . The commit list transmission process is a process in which the user terminal 2 transmits a commit list to the software development support server 1 .

ユーザ端末2は、コミットリスト送信処理の実行タイミングであるか否かを判定する(ステップS1)。ここで、コミットリスト送信処理の実行タイミングとは、コミット履歴が更新されるタイミングであり、例えば、ユーザ端末2においてコミットが行われたり、ブランチの切り替えが行われたりしてコミット履歴が変更された場合である。コミットリスト送信処理の実行タイミングである場合には(ステップS1:YES)、コミットリストを作成し、作成したコミットリストをソフトウェア開発支援サーバ1に送信する(ステップS2、図3参照)。 The user terminal 2 determines whether or not it is time to execute commit list transmission processing (step S1). Here, the execution timing of the commit list transmission process is the timing at which the commit history is updated. is the case. If it is time to execute the commit list transmission process (step S1: YES), a commit list is created, and the created commit list is sent to the software development support server 1 (step S2, see FIG. 3).

ソフトウェア開発支援サーバ1は、コミットリストを受信すると(ステップS3)、受信したコミットリストを記憶部11に記憶し(ステップS4)、同一ブランチで作業している他のユーザのコミットリストを参照して、最新の共通コミットのコミットIDを決定する(ステップS5、図3参照)。次いで、ソフトウェア開発支援サーバ1は、決定した最新の共通コミットのコミットIDを同一ブランチで作業している全ユーザのユーザ端末2に送信する(ステップS6)。 When the software development support server 1 receives the commit list (step S3), it stores the received commit list in the storage unit 11 (step S4), and refers to commit lists of other users working on the same branch. , determine the commit ID of the latest common commit (step S5, see FIG. 3). Next, the software development support server 1 transmits the determined commit ID of the latest common commit to the user terminals 2 of all users working on the same branch (step S6).

ユーザ端末2は、最新の共通コミットのコミットIDを受信すると(ステップS7)、受信した最新の共通コミットのコミットIDを記憶部21に記憶する(ステップS8)。 Upon receiving the commit ID of the latest common commit (step S7), the user terminal 2 stores the received commit ID of the latest common commit in the storage unit 21 (step S8).

このように本実施の形態のコミットリスト送信処理によれば、プラグインPLの機能により、ユーザ端末2は、コミットリストの内容が変更されるたびにコミットリストをソフトウェア開発支援サーバ1に送信し、ソフトウェア開発支援サーバ1はコミットリストを受信するたびに最新の共通コミットを検索して、最新の共通コミットを同一のブランチで作業する全ユーザのユーザ端末2に送信するので、同一のブランチで作業する全ユーザは、最新の共通コミットを常に共有することができる。 As described above, according to the commit list transmission process of the present embodiment, the user terminal 2 transmits the commit list to the software development support server 1 every time the content of the commit list is changed by the function of the plug-in PL, Every time the software development support server 1 receives the commit list, it searches for the latest common commit and transmits the latest common commit to the user terminals 2 of all users working on the same branch, so that they work on the same branch. All users can always share the latest common commit.

次に、図9を用いて、ソフトウェア開発支援システム10の変更ファイル送信処理について説明する。図9は、ソフトウェア開発支援システム10の変更ファイル送信処理の流れを示すフローチャートである。変更ファイル送信処理は、ユーザ端末2がソフトウェア開発支援サーバ1に変更があるファイルの差分データを送信する処理である。 Next, change file transmission processing of the software development support system 10 will be described with reference to FIG. FIG. 9 is a flow chart showing the flow of change file transmission processing of the software development support system 10 . The modified file transmission process is a process in which the user terminal 2 transmits difference data of modified files to the software development support server 1 .

ユーザ端末2は、変更ファイル送信処理の実行タイミングであるか否かを判定する(ステップS11)。変更ファイル送信処理の実行タイミングとは、作業モードにより実行タイミングが異なる。例えば、作業モードがリアルタイムモードの場合には、1秒ごとに変更ファイル送信処理を実行し、作業モードが非リアルタイムモードの場合には、5分ごとに変更ファイル送信処理を実行してもよい。また、ユーザ端末2が最新の共通コミットを受信したタイミングを変更ファイル送信処理の実行タイミングとしてもよい。変更ファイル送信処理の実行タイミングである場合には(ステップS11:YES)、最新の共通コミットを記憶部21から取得して(ステップS12)、記憶部21の中から最新の共通コミットに対して変更されたファイルのすべてを検索する(ステップS13)。次いで、ユーザ端末2は、最新の共通コミットに対して変更されたすべてのファイルの差分データを作成し(ステップS14)、作成した変更があるファイルの差分データをソフトウェア開発支援サーバ1に送信する(ステップS15)。 The user terminal 2 determines whether or not it is time to execute the change file transmission process (step S11). The execution timing of the change file transmission process differs depending on the work mode. For example, if the work mode is the real-time mode, the change file transmission process may be executed every second, and if the work mode is the non-real-time mode, the change file transmission process may be executed every 5 minutes. Also, the timing when the user terminal 2 receives the latest common commit may be set as the execution timing of the change file transmission process. If it is time to execute the change file transmission process (step S11: YES), the latest common commit is acquired from the storage unit 21 (step S12), and the latest common commit is changed from the storage unit 21. Search for all the files found (step S13). Next, the user terminal 2 creates differential data of all files changed with respect to the latest common commit (step S14), and sends the created differential data of files with changes to the software development support server 1 ( step S15).

ソフトウェア開発支援サーバ1は、ユーザ端末2から変更があるファイルの差分データを受信すると(ステップS16)、変更があるファイルの差分データを記憶部11に記憶する(ステップS17、図4参照)。 When the software development support server 1 receives the difference data of the changed file from the user terminal 2 (step S16), it stores the difference data of the changed file in the storage unit 11 (step S17, see FIG. 4).

このように本実施の形態の変更ファイル送信処理によれば、プラグインPLの機能により、一のユーザ端末2においてファイルの変更が行われると、変更があるファイルがソフトウェア開発支援サーバ1に送信されるようになっているので、ソフトウェア開発支援サーバ1は、同一ブランチで作業している全ユーザのファイル変更を一元的に管理することができる。 As described above, according to the modified file transmission process of the present embodiment, when a file is modified in one user terminal 2 by the function of the plug-in PL, the modified file is transmitted to the software development support server 1. Therefore, the software development support server 1 can centrally manage file changes of all users working on the same branch.

次に、図10を用いて、ソフトウェア開発支援システム10の変更ファイル受信処理について説明する。図10は、ソフトウェア開発支援システム10の変更ファイル受信処理の流れを示すフローチャートである。変更ファイル受信処理は、ユーザ端末2がソフトウェア開発支援サーバ1に変更があるファイルの差分データを要求して受信する処理である。 Next, change file reception processing of the software development support system 10 will be described with reference to FIG. FIG. 10 is a flow chart showing the flow of change file reception processing of the software development support system 10 . The modified file reception process is a process in which the user terminal 2 requests the software development support server 1 to receive the difference data of the modified file.

なお、図8に示した変更ファイル受信処理は、作業モードが非リアルタイムモードの場合の変更ファイル受信処理の流れを示したフローチャートである。作業モードがリアルタイムモードの場合には、図7で説明した変更ファイル送信処理において、ソフトウェア開発支援サーバ1が差分データを受信すること契機として、図8のステップS24以降の工程を実行するようにしている。勿論、作業モードがリアルタイムモードの場合も、図8に示したステップS21~S27の工程に従って実行してもよい。 The change file reception process shown in FIG. 8 is a flow chart showing the flow of the change file reception process when the work mode is the non-real time mode. When the work mode is the real-time mode, when the software development support server 1 receives the difference data in the change file transmission process described with reference to FIG. there is Of course, even when the work mode is the real-time mode, the processes of steps S21 to S27 shown in FIG. 8 may be followed.

ユーザ端末2は、変更ファイル受信処理の実行タイミングであるか否かを判定する(ステップS21)。変更ファイル受信処理の実行タイミングは、作業モードにより異なるようにしてもよい。例えば、作業モードがリアルタイムモードの場合には、1秒ごとに変更ファイル受信処理を実行し、作業モードが非リアルタイムモードの場合には、5分ごとにファイル受信処理を実行してもよい。変更ファイル受信処理の実行タイミングである場合には(ステップS21:YES)、ユーザ端末2は、変更ファイルの要求をソフトウェア開発支援サーバ1に送信する(ステップS22)。 The user terminal 2 determines whether or not it is time to execute the change file reception process (step S21). The execution timing of the change file reception process may differ depending on the work mode. For example, when the work mode is the real-time mode, the modified file reception process may be executed every second, and when the work mode is the non-real-time mode, the file reception process may be executed every five minutes. When it is time to execute the change file reception process (step S21: YES), the user terminal 2 transmits a change file request to the software development support server 1 (step S22).

ソフトウェア開発支援サーバ1は、変更ファイルの要求を受信すると(ステップS23)、記憶部11に記憶された全ユーザのデータの中から共通コミットに対して変更があるファイルを抽出して、抽出した変更があるファイルの差分データをユーザ端末2に送信する(ステップS24)。 When the software development support server 1 receives the change file request (step S23), it extracts files with changes to the common commit from among the data of all users stored in the storage unit 11, and extracts the extracted changes. is sent to the user terminal 2 (step S24).

ユーザ端末2は、変更があるファイルの差分データを受信すると(ステップS25)、受信した差分データを記憶部21に記憶し(ステップS26、図5参照)、ユーザ端末2に差分データがある旨の変更表示を行う(ステップS27、図6、図7参照)。なお、ユーザ端末2は、プラグインPLの作業モードに応じて表示態様を異ならせて変更表示を行う。 When the user terminal 2 receives the difference data of the changed file (step S25), it stores the received difference data in the storage section 21 (step S26, see FIG. Change display is performed (step S27, see FIGS. 6 and 7). It should be noted that the user terminal 2 changes the display mode according to the work mode of the plug-in PL to change the display.

このように本実施の形態の変更ファイル受信処理によれば、プラグインPLの機能により、一のユーザ端末2は、他のユーザ端末2においてファイルの変更が行われると、ソフトウェア開発支援サーバ1を介して変更があるファイルを受信するので、同一ブランチで作業している各ユーザは、他のユーザのソースコードの変更箇所や内容を確認することができる。 As described above, according to the modified file reception process of the present embodiment, when a file is modified in another user terminal 2, one user terminal 2 causes the software development support server 1 to be activated by the plug-in PL function. Each user working on the same branch can check the changed parts and contents of the source code of other users, because files with changes are received via the same branch.

<総括>
図11は、本実施の形態のソフトウェア開発支援システム10におけるソフトウェア開発支援サーバ1及びユーザ端末の機能2を説明する図である。
<Summary>
FIG. 11 is a diagram for explaining functions 2 of the software development support server 1 and the user terminal in the software development support system 10 of this embodiment.

まず、ソフトウェア開発支援システム10は、図2、図4及び図5に示すように、ブランチ、ユーザ及びファイルごとに、ファイルの差分データを管理する構成を採用している。 First, as shown in FIGS. 2, 4, and 5, the software development support system 10 employs a configuration for managing file difference data for each branch, user, and file.

ソフトウェア開発支援サーバ1は、このようなデータ管理の下、ユーザ端末2から送信されたコミットリストを受信し、記憶する機能f1と、複数のユーザのコミットリストに基づいて最新の共通コミットを検索して、複数のユーザ端末2に通知する機能f2と、ユーザ端末2から変更があるファイルを受信した場合、受信した変更があるファイルを他のユーザ端末2に送信する機能f3と、を備えている。 Under such data management, the software development support server 1 has a function f1 for receiving and storing the commit list sent from the user terminal 2, and searching for the latest common commit based on the commit lists of a plurality of users. and a function f3 for transmitting the received modified file to other user terminals 2 when a modified file is received from the user terminal 2. .

一方、ユーザ端末2は、このようなデータ管理の下、適宜、コミットリストを作成し、コミットリストをソフトウェア開発支援サーバ1に送信する機能f4と、最新の共通コミットをソフトウェア開発支援サーバ1から受信し、記憶する機能f5と、最新の共通コミットと比べて自己のファイルに変更が発生した場合、変更があるファイルの差分データを作成し、作成した差分データをソフトウェア開発支援サーバ1に送信する機能f6と、ソフトウェア開発支援サーバ1から送信された他のユーザの変更があるファイルの差分データを受信して、受信した差分データを変更表示する機能f7と、を備えている。 On the other hand, under such data management, the user terminal 2 has a function f4 to appropriately create a commit list, send the commit list to the software development support server 1, and receive the latest common commit from the software development support server 1. and a function f5 to store the data, and a function to create differential data of the changed file and send the created differential data to the software development support server 1 when there is a change in the own file compared to the latest common commit. f6, and a function f7 for receiving differential data of a file modified by another user transmitted from the software development support server 1 and displaying the received differential data in a modified manner.

本実施の形態のソフトウェア開発支援システム10は、このような機能を備えることにより、Gitのホスティングサービスのサーバにプッシュする以前において、メンバ間のコミュニケーションを十分に図ることができ、ソフトウェアの品質を向上させることができる。すなわち、ソフトウェア開発支援システム10では、Gitホスティングサービス提供サーバ4に対するプルリクエストを用いなくても、ユーザ同士の作業をレビューすることができる。また、ソフトウェア開発支援システム10では、Gitホスティングサービス提供サーバ4にプッシュする以前であっても、ローカル環境(ユーザ端末2間)で他のユーザが何をやっているか視覚的に把握することができ、ユーザ端末2間でソースコードの整合性を取ることができる。その結果、チームメンバ全員に受け入れられた後にGitホスティングサービス提供サーバ4に対してプッシュすることが可能となる。また、ソフトウェア開発支援システム10では、ユーザは、ユーザ自身の状況に応じた作業モードを選択することができるので、ユーザの望む作業環境を提供することができる。 The software development support system 10 of the present embodiment is provided with such a function, so that communication between members can be sufficiently achieved before pushing to the server of the Git hosting service, and the quality of the software can be improved. can be made In other words, in the software development support system 10 , users' work can be reviewed without using a pull request to the Git hosting service providing server 4 . In the software development support system 10, even before pushing to the Git hosting service providing server 4, it is possible to visually grasp what other users are doing in the local environment (between the user terminals 2). , the consistency of the source code can be obtained between the user terminals 2 . As a result, it becomes possible to push to the Git hosting service providing server 4 after being accepted by all team members. In addition, in the software development support system 10, the user can select a work mode according to the user's own situation, so that the work environment desired by the user can be provided.

以上から、本実施の形態のソフトウェア開発支援システム10は、従来のGitホスティングサービスを利用したソフトウェア開発の問題点、例えば、プルリクエストを用いたソフトウェア開発では、プルリクエストの数が多く、また、他のメンバもソースコードを適切にレビューする時間が十分にないことも多く、各メンバや承認者のレビュー負担が大きいという問題、現在のGitを用いたソフトウェア開発では、他のメンバがプッシュやプルリクエストを行うまでは、他のメンバのソースコードを見ることができないため、他のメンバがどのような作業を行っているのか不明であるという問題を解決することができる。 As described above, the software development support system 10 of the present embodiment solves the problems of software development using a conventional Git hosting service. members often do not have enough time to properly review the source code, and the review burden on each member and approver is heavy. Since the source code of other members cannot be seen until the

<その他の実施の形態>
なお、上記実施の形態のソフトウェア開発支援システム10では、複数のユーザが同一のブランチで協働してソフトウェア開発を行う場合について説明したが、ソフトウェア開発支援システム10では、図2、図4及び図5で示したように、ブランチ及びユーザごとにデータを管理しているため、ソフトウェア開発支援システム10は、複数のユーザが異なるブランチで協働してソフトウェア開発を行う場合にも適用は可能である。ただし、各ユーザが作業するブランチの親ブランチが同一であることが条件になる。この場合には、複数のユーザ間において共通のコミットを見つけられるからである。例えば、ユーザAがブランチAの子ブランチであるブランチB、ユーザBがブランチAの子ブランチであるブランチCで協働してソフトウェア開発をしている場合にも、ソフトウェア開発支援システム10の図11に示した機能は実現できる。したがって、この場合にも、Gitホスティングサービス提供サーバ4の機能を用いなくても、メンバ間のコミュニケーションを十分に図ることができ、ソフトウェアの品質を向上させることができる。
<Other embodiments>
In the software development support system 10 of the above-described embodiment, a case has been described in which a plurality of users work together to develop software in the same branch. 5, since data is managed for each branch and user, the software development support system 10 can also be applied when a plurality of users collaborate in different branches to develop software. . However, the parent branch of the branch that each user works on must be the same. This is because in this case, a common commit can be found among multiple users. For example, when user A develops software in branch B, which is a child branch of branch A, and user B develops software in branch C, which is a child branch of branch A, the software development support system 10 shown in FIG. can be realized. Therefore, even in this case, communication between members can be sufficiently achieved without using the functions of the Git hosting service providing server 4, and the quality of the software can be improved.

また、上記実施の形態のソフトウェア開発支援システム10では、ソフトウェア開発支援サーバ1及びユーザ端末2は、変更があるファイルの差分データを管理し、この変更があるファイルの差分データを、ソフトウェア開発支援サーバ1とユーザ端末2間でやりとりしたが、ファイル全体を管理し、変更があるファイルのファイル全体(ソースコード全部)をソフトウェア開発支援サーバ1とユーザ端末2間でやりとりするようにしてもよい。すなわち、記憶部11及び記憶部21において、ブランチごと、ユーザごとにファイル全体を管理するようにしてもよい。 Further, in the software development support system 10 of the above-described embodiment, the software development support server 1 and the user terminal 2 manage the difference data of the changed files, and send the difference data of the changed files to the software development support server. 1 and the user terminal 2, the entire file may be managed and the entire file (all source code) of the file with changes may be exchanged between the software development support server 1 and the user terminal 2. That is, the storage unit 11 and storage unit 21 may manage the entire file for each branch and for each user.

また、上記実施の形態のソフトウェア開発支援システム10は、ソフトウェア開発支援サーバ1を、Gitホスティングサービス提供サーバ4とは別に設けてGit用ソフトウェア開発支援サービスを提供したが、ソフトウェア開発支援サーバ1がGitホスティングサービス提供サーバ4の機能を兼ね備えてもよい。 In the software development support system 10 of the above embodiment, the software development support server 1 is provided separately from the Git hosting service providing server 4 to provide software development support services for Git. It may also have the functions of the hosting service providing server 4 .

また、上記実施の形態のソフトウェア開発支援システム10の変更ファイル送信処理は、最新の共通コミットからの差分データを作成し、送信していたが、一旦、最新の共通コミットからの差分データを作成し、送信した後は、最新の共通コミットが変更されるまでの間、前回送信したデータからの差分を作成し、送信するようにしてもよい。さらにトラフィックを抑制することができる。 In addition, the change file transmission processing of the software development support system 10 of the above-described embodiment creates and transmits differential data from the latest common commit. After transmission, a difference from the previously transmitted data may be created and transmitted until the latest common commit is changed. Furthermore, traffic can be suppressed.

以上、本発明の実施の形態について説明してきたが、本発明は、上述した実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲において、本発明の実施の形態に対して種々の変形や変更を施すことができ、そのような変形や変更を伴うものもまた、本発明の技術的範囲に含まれるものである。また、発明の実施の形態に記載された、作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、本発明の実施の形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments, and various modifications can be made to the embodiments of the present invention without departing from the gist of the present invention. Modifications and modifications can be applied, and those involving such modifications and modifications are also included in the technical scope of the present invention. Further, the actions and effects described in the embodiments of the invention are merely enumerations of the most suitable actions and effects resulting from the present invention, and the actions and effects of the present invention are described in the embodiments of the invention. are not limited to those listed.

1 ソフトウェア開発支援サーバ
2 ユーザ端末
3 通信ネットワーク
4 Gitホスティングサービス提供サーバ
10 ソフトウェア開発支援システム
11,21 記憶部
12,22 制御部
13,23 通信部
24 UI部
25 AP(アプリケーションプログラム)
1 software development support server 2 user terminal 3 communication network 4 Git hosting service providing server 10 software development support system 11, 21 storage units 12, 22 control units 13, 23 communication unit 24 UI unit 25 AP (application program)

Claims (5)

複数のユーザが利用する複数のユーザ端末と、該複数のユーザ端末のそれぞれとネットワークを介して相互に通信可能なサーバと、を備え、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援システムであって、
前記複数のユーザ端末は、それぞれ、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作するアドインソフトと、が動作可能であり、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記サーバに送信するコミットリスト作成・送信部と、
前記サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶部と、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記サーバに送信する変更ファイル作成・送信部と、
前記サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示部と、
を備え、
前記サーバは、
ブランチ、ユーザ及びファイルごとに管理されたファイルの前記差分データと、前記複数のユーザ端末から送信された前記コミットリストと、を記憶する第二の記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストを受信した場合、受信した前記コミットリストを前記第二の記憶部に記憶するコミットリスト受信・記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストに基づいて、前記最新の共通コミットを検索し、検索した前記最新の共通コミットを前記複数のユーザ端末のそれぞれに送信する共通コミット検索・通知部と、
一の前記ユーザ端末から前記第一の差分データを受信した場合、前記第一の差分データを前記第二の記憶部に記憶するとともに、前記第一の差分データを前記第二の差分データとして、他の前記ユーザ端末に送信する変更ファイル受信・送信部と、
を備えることを特徴とするソフトウェア開発支援システム。
A software development support system that supports software development using Git, comprising a plurality of user terminals used by a plurality of users, and a server capable of mutually communicating with each of the plurality of user terminals via a network. hand,
Each of the plurality of user terminals,
At least an application for using Git, a source code editor, and add-in software running on the source code editor are operable,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
a commit list creation/sending unit that creates a commit list, which is a list of commit histories, and sends the commit list to the server when the commit history is changed;
a common commit reception/storage unit that receives the latest common commit from the server and stores it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creating/sending unit that sends the first differential data to the server;
When the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) is received from the server, based on the latest common commit, the received a change display unit that calculates the difference between the second difference data and the second file of itself, and displays the calculated difference on the screen of the source code editor of the display unit;
with
The server is
a second storage unit that stores the differential data of files managed for each branch, user, and file, and the commit list transmitted from the plurality of user terminals;
a commit list receiving/storage unit that, when receiving the commit list transmitted from each of the plurality of user terminals, stores the received commit list in the second storage unit;
Common commit retrieval and notification for retrieving the latest common commit based on the commit list transmitted from each of the plurality of user terminals, and transmitting the retrieved latest common commit to each of the plurality of user terminals. Department and
When the first difference data is received from one of the user terminals, the first difference data is stored in the second storage unit, and the first difference data is used as the second difference data, a change file reception/transmission unit that transmits to the other user terminal;
A software development support system comprising:
複数のユーザが利用する複数のユーザ端末とネットワークを介して相互に通信可能であり、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援サーバであって、
前記複数のユーザ端末は、それぞれ、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作するアドインソフトと、が動作可能であり、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記ソフトウェア開発支援サーバに送信するコミットリスト作成・送信部と、
前記ソフトウェア開発支援サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶部と、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記ソフトウェア開発支援サーバに送信する変更ファイル作成・送信部と、
前記ソフトウェア開発支援サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示部と、
を備えており、
ブランチ、ユーザ及びファイルごとに管理されたファイルの前記差分データと、前記複数のユーザ端末から送信された前記コミットリストと、を記憶する第二の記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストを受信した場合、受信した前記コミットリストを前記第二の記憶部に記憶するコミットリスト受信・記憶部と、
前記複数のユーザ端末のそれぞれから送信された前記コミットリストに基づいて、前記最新の共通コミットを検索し、検索した前記最新の共通コミットを前記複数のユーザ端末のそれぞれに送信する共通コミット検索・通知部と、
一の前記ユーザ端末から前記第一の差分データを受信した場合、前記第一の差分データを前記第二の記憶部に記憶するとともに、前記第一の差分データを前記第二の差分データとして、他の前記ユーザ端末に送信する変更ファイル受信・送信部と、
を備えることを特徴とするソフトウェア開発支援サーバ。
A software development support server capable of communicating with a plurality of user terminals used by a plurality of users via a network and supporting software development using Git,
Each of the plurality of user terminals,
At least an application for using Git, a source code editor, and add-in software running on the source code editor are operable,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
a commit list creation/sending unit that creates a commit list, which is a list of commit histories, when the commit history is changed, and sends the commit list to the software development support server;
a common commit reception/storage unit that receives the latest common commit from the software development support server and stores it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creation/transmission unit that transmits the first difference data to the software development support server;
When receiving the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) from the software development support server, based on the latest common commit a change display unit that calculates the difference between the received second difference data and the second file of its own, and displays the calculated difference on the screen of the source code editor of the display unit;
and
a second storage unit that stores the differential data of files managed for each branch, user, and file, and the commit list transmitted from the plurality of user terminals;
a commit list receiving/storage unit that, when receiving the commit list transmitted from each of the plurality of user terminals, stores the received commit list in the second storage unit;
Common commit retrieval and notification for retrieving the latest common commit based on the commit list transmitted from each of the plurality of user terminals, and transmitting the retrieved latest common commit to each of the plurality of user terminals. Department and
When the first difference data is received from one of the user terminals, the first difference data is stored in the second storage unit, and the first difference data is used as the second difference data, a change file reception/transmission unit that transmits to the other user terminal;
A software development support server comprising:
複数のユーザが利用する複数のユーザ端末と、該複数のユーザ端末のそれぞれとネットワークを介して相互に通信可能なサーバと、を備え、Gitを用いたソフトウェア開発を支援するソフトウェア開発支援システムにおける前記ユーザ端末のためのソフトウェア開発支援プログラムであって、
前記複数のユーザ端末は、それぞれ、
ブランチ、ユーザ及びファイルごとに管理されたファイルの差分データと、最新の共通コミットと、を記憶する第一の記憶部と、
表示部と、を備え、
少なくとも、Gitを利用するためのアプリケーションと、ソースコードエディタと、ソースコードエディタ上で動作する前記ソフトウェア開発支援プログラムと、が動作可能であり、
コミット履歴が変更された場合、コミット履歴の一覧リストであるコミットリストを作成し、前記サーバに送信するコミットリスト作成・送信ステップと、
前記サーバから、前記最新の共通コミットを受信して、前記第一の記憶部に記憶する共通コミット受信・記憶ステップと、
所定のファイル(以下、第一のファイルという)において変更が生じた場合、該第一のファイルの前記最新の共通コミットに対する前記差分データ(以下、第一の差分データという)を作成し、作成した前記第一の差分データを前記サーバに送信する変更ファイル作成・送信ステップと、
前記サーバから、他のユーザの所定のファイル(以下、第二のファイルという)の前記差分データ(以下、第二の差分データという)を受信した場合、前記最新の共通コミットに基づいて、受信した前記第二の差分データと、自己の前記第二のファイルとの差分を算出し、算出した差分を前記表示部のソースコードエディタの画面上に表示する変更表示ステップと、
を前記ユーザ端末に実行させることを特徴とするソフトウェア開発支援プログラム。
A software development support system for supporting software development using Git, comprising a plurality of user terminals used by a plurality of users, and a server capable of communicating with each of the plurality of user terminals via a network. A software development support program for a user terminal,
Each of the plurality of user terminals,
a first storage unit that stores differential data of files managed for each branch, user, and file, and the latest common commit;
a display unit;
At least an application for using Git, a source code editor, and the software development support program running on the source code editor are operable,
a commit list creation/send step of creating a commit list, which is a list of commit histories, and sending the commit list to the server when the commit history is changed;
a common commit receiving/storing step of receiving the latest common commit from the server and storing it in the first storage unit;
When a change occurs in a predetermined file (hereinafter referred to as the first file), the differential data (hereinafter referred to as the first differential data) for the latest common commit of the first file is created and created. a change file creating/sending step of sending the first differential data to the server;
When the differential data (hereinafter referred to as second differential data) of another user's predetermined file (hereinafter referred to as second file) is received from the server, based on the latest common commit, the received a change display step of calculating the difference between the second difference data and the second file of itself, and displaying the calculated difference on the screen of the source code editor of the display unit;
A software development support program characterized by causing the user terminal to execute.
前記変更表示ステップは、
ファイル一覧において、他のユーザによって変更されたファイルを、変更を示す態様で表示する第一の変更表示ステップと、
ソースコードエディタで現在開いているファイルにおいて、他のユーザによって変更された箇所を、変更を示す態様で表示する第二の変更表示ステップと、
を備えることを特徴とする請求項3記載のソフトウェア開発支援プログラム。
The change display step includes:
a first change display step of displaying a file changed by another user in a file list in a manner indicating the change;
a second change display step of displaying a portion changed by another user in a file currently open in the source code editor in a manner indicating the change;
4. The software development support program according to claim 3, comprising:
前記変更表示ステップは、
コメントを入力するコメント入力ステップを備え、
前記変更ファイル作成・送信ステップは、前記コメント入力ステップにより入力されたコメントを前記第一の差分データとして作成し、
前記変更表示ステップは、他のユーザによって入力されたコメントを表示するコメント表示ステップを備えることを特徴とする請求項3又は4記載のソフトウェア開発支援プログラム。
The change display step includes:
Equipped with a comment input step for inputting a comment,
The change file creation/transmission step creates the comment input by the comment input step as the first difference data,
5. The software development support program according to claim 3, wherein said change display step comprises a comment display step of displaying comments input by other users.
JP2020219816A 2020-12-29 2020-12-29 Software development support system, software development support server and software development support program Active JP7150002B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020219816A JP7150002B2 (en) 2020-12-29 2020-12-29 Software development support system, software development support server and software development support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020219816A JP7150002B2 (en) 2020-12-29 2020-12-29 Software development support system, software development support server and software development support program

Publications (2)

Publication Number Publication Date
JP2022104700A JP2022104700A (en) 2022-07-11
JP7150002B2 true JP7150002B2 (en) 2022-10-07

Family

ID=82361051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020219816A Active JP7150002B2 (en) 2020-12-29 2020-12-29 Software development support system, software development support server and software development support program

Country Status (1)

Country Link
JP (1) JP7150002B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116319633A (en) * 2022-12-23 2023-06-23 百度在线网络技术(北京)有限公司 Instant messaging method, device, equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015186256A1 (en) 2014-06-06 2015-12-10 株式会社日立製作所 Development support system
WO2019026248A1 (en) 2017-08-03 2019-02-07 株式会社日立製作所 Program development assistance device, program development assistance method, and program development assistance program
US20200004518A1 (en) 2018-06-28 2020-01-02 Atlassian Pty Ltd Systems and methods for tracking source code deployments
US20200192638A1 (en) 2017-08-22 2020-06-18 Codestream, Inc. Systems and methods for providing an instant communication channel within integrated development environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015186256A1 (en) 2014-06-06 2015-12-10 株式会社日立製作所 Development support system
WO2019026248A1 (en) 2017-08-03 2019-02-07 株式会社日立製作所 Program development assistance device, program development assistance method, and program development assistance program
US20200192638A1 (en) 2017-08-22 2020-06-18 Codestream, Inc. Systems and methods for providing an instant communication channel within integrated development environments
US20200004518A1 (en) 2018-06-28 2020-01-02 Atlassian Pty Ltd Systems and methods for tracking source code deployments

Also Published As

Publication number Publication date
JP2022104700A (en) 2022-07-11

Similar Documents

Publication Publication Date Title
US10554664B2 (en) Activity feed for hosted files
US9342814B2 (en) Presentation access tracking system
EP3075158B1 (en) Collaborative video editing in a cloud environment
US8504981B2 (en) Application development support device, program, and recording medium
US12032954B2 (en) Issue tracking system
US9762664B2 (en) Optimistic concurrency utilizing distributed constraint enforcement
EP2256624A1 (en) Application development support device, program and recording medium
US20050114784A1 (en) Rich media publishing
WO2007044621A2 (en) Systems and methods for uploading and downloading files in a distributed network
TW200424868A (en) Method for managing file replication in applications
US11727190B1 (en) Previews for collaborative documents
JP2019509530A (en) Native application collaboration
KR20080039393A (en) Copy and update files
JP7150002B2 (en) Software development support system, software development support server and software development support program
JP5352225B2 (en) Data reuse method, data reuse system, data reuse device, and data reuse program
JP4714199B2 (en) Application development support apparatus and program
CN112567356A (en) Method, device, system, medium, processor and terminal for forming fusion model
JP4469818B2 (en) Data management apparatus, data program, and data management method
JP4909432B2 (en) Content management system
JP2005078224A (en) Web site managing system
JP2006120016A (en) Data citation system
CN113656052B (en) Routing update control method and its device, equipment and medium
JP2015141540A (en) Information processor, wording association presentation system, and information processing program
JP2012133499A (en) Data management device, data management system and data management program
JP2012053565A (en) Information processor, information processing system and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210331

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210719

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220927

R150 Certificate of patent or registration of utility model

Ref document number: 7150002

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150