17th Int. gvSIG Conference: Version Control System on gvSIG Desktop
Summary
TLDR本文介绍了在开源软件中实现高级制图编辑的版本控制系统。演讲者首先强调了开源软件在高级制图编辑领域的发展,并介绍了如何在多用户编辑和版本控制中解决常见问题。提出了使用版本控制系统(如SVN、GitHub等)的可能性,并讨论了它们在处理二进制数据(如制图数据)时的局限性。随后,介绍了一种新的集成于GBC桌面GIS的版本控制系统,它允许用户在本地副本上编辑并向中央数据库提交更改,同时解决冲突并恢复历史版本。此外,还展示了该系统的高级搜索工具、数据模型和表单,以及如何通过这个系统维护和发布制图信息。
Takeaways
- 🌐 演讲者介绍了在开源软件中开发的新的版本控制系统,用于高级桌面地图编辑。
- 🔍 版本控制系统主要解决多用户编辑和版本控制问题,特别是在处理形状文件或其他基于文件的格式以及数据库时。
- 📂 在文件格式编辑中,问题包括文件锁定和本地副本编辑,导致难以确定哪个文件是正确的。
- 🔌 当使用数据库时,问题包括需要高频率的连接和难以管理同时编辑相同特征的用户。
- 🗂️ 版本控制的挑战在于难以恢复旧版本的几何形状,尤其是在使用文件夹和命名约定来组织数据时。
- 🛠️ 传统的版本控制系统如SVN、Git等通常针对文本文件,对于二进制数据(如地图数据)效率不高。
- 🔄 演讲者提出了一个新的GIS版本控制系统,它是一个集中式系统,专门设计用于管理地图数据,并且集成到了桌面GIS中。
- 🔄 该版本控制系统允许编辑矢量层,并能够在特定时间恢复几何形状的状态,存储用户对几何形状所做的修改。
- 🔄 系统使用中央数据库,如Oracle或PostGIS,并且每个用户都在本地副本上工作,然后将更改上传到存储库。
- 🔄 为解决冲突,系统采用了复制修改合并模型,允许用户在上传更改时解决冲突。
- 🔄 版本控制系统还包括高级搜索工具、表单数据输入和拓扑审查,提高了数据编辑和管理的效率。
- 🔄 版本控制系统GIS从GBC 2.6版本开始可用,目前还在开发中,但已有多个构建版本可供测试。
Q & A
什么是开源软件中的版本控制系统?
-版本控制系统是一种用于管理文件变更历史的工具,它允许用户编辑文件,跟踪更改,并在必要时恢复到旧版本。在开源软件中,版本控制系统通常用于文本文件,如文档和源代码,但对于二进制数据,如地图数据,它们可能不够高效。
在多用户编辑情况下,使用基于文件的格式(如Shapefiles)会遇到哪些问题?
-使用基于文件的格式时,可能只有一个用户能够同时修改文件,或者两个不同的用户可以在他们的本地副本上编辑文件,但这样就存在一个问题:我们不知道哪个是正确的文件版本,因为无法确定哪个用户的更改是最终版本。
使用数据库进行地图数据编辑时,需要考虑哪些问题?
-使用数据库时,需要考虑的问题包括需要高频率的连接、管理用户编辑时的冲突,以及当两个用户同时编辑相同的特征时如何确定哪些更改被保留。
版本控制系统在处理Shapefiles或其他类似格式时通常采用什么方法?
-在处理Shapefiles或其他类似格式时,版本控制系统通常通过在文件夹中组织不同版本的数据,并使用命名约定(如版本1、版本2等)来区分不同版本,但这使得恢复旧版本的几何数据变得困难。
为什么现有的版本控制系统(如SVN或Git)可能不适用于地图数据?
-现有的版本控制系统主要针对文本文件设计,它们对于二进制数据(如地图数据)的效率不高。此外,去中心化系统需要复制大量数据,且它们通常没有集成到桌面GIS软件中,需要使用外部工具。
GBC Desktop中的版本控制系统是如何设计的?
-GBC Desktop中的版本控制系统是一个集中式版本控制系统,专为管理地图数据设计,并集成到了桌面GIS软件中,允许用户编辑矢量图层并恢复特定时间的几何状态。
GBC Desktop的版本控制系统如何解决多用户编辑和版本控制的问题?
-GBC Desktop的版本控制系统允许每个用户在本地副本上工作,并将更改上传到中央数据库。如果出现冲突,用户可以选择保留自己的更改或他人的更改,从而解决了多用户编辑和版本控制的问题。
版本控制系统中的“复制修改合并模型”是什么?
-“复制修改合并模型”是一种工作模式,用户在本地副本上工作,完成编辑后上传更改。如果有冲突,用户可以决定保留哪些更改,这样可以避免锁定整个仓库,提高工作效率。
GBC Desktop的版本控制系统提供了哪些工具来增强地图数据编辑?
-GBC Desktop的版本控制系统提供了如拓扑检查、数据模型、高级搜索工具和表单等工具,以增强地图数据编辑的效率和准确性。
版本控制系统的典型工作流程是什么?
-版本控制系统的典型工作流程包括更新工作副本、在本地副本上编辑、提交更改到仓库,以及解决可能的冲突。这个过程允许用户在本地工作,同时能够与团队成员共享和协调更改。
GBC Desktop的版本控制系统何时可用?
-GBC Desktop的版本控制系统从GBC 2.6版本开始提供,这是一个正在开发的版本,但已经有多个构建版本可供测试。最终版本将很快发布。
Outlines
🚀 开始国际GPC大会的旅程
大家好,我们将在国际GPC大会上开启新旅程,讨论GBC桌面上的版本控制系统和开放源代码软件中的高级制图编辑。首先,我将分享桌面并开始演示。我们开发了一种新工具GBC桌面,它解决了多用户编辑和版本控制的问题。
🔍 多用户编辑问题
在多用户编辑中,若使用文件格式(如shapefile),只能单用户修改,若多个用户在本地修改,会导致文件冲突。当使用数据库时,需要高连接数并面临同步问题。不同用户同时编辑相同或不同特征时,难以管理和确定最终版本。
📂 版本控制问题
在版本控制中,文件格式通常通过文件夹和版本号管理,但难以恢复旧版本。数据库备份易于实现但恢复困难,且需要数据库管理员管理大量数据。
🔧 解决方案:版本控制系统
为解决多用户编辑和版本控制问题,我们可以借鉴现有的版本控制系统,如集中式的SVN和去中心化的GitHub。虽然这些系统主要针对文本文件,但对于二进制数据(如制图数据)效率低下,并且与桌面GIS工具不集成。
🌐 GBC桌面中的版本控制系统
我们开发了适用于GBC桌面的VCS GIS工具,这是一个集中式版本控制系统,专为管理制图数据设计,并与桌面GIS集成。该系统允许编辑矢量图层并恢复特定时间点的几何形状,支持并发编辑和版本管理。
👥 多用户协作和冲突解决
用户在本地工作副本上进行编辑并提交更改。当有冲突时,用户可以选择保留哪个更改。我们采用复制-修改-合并模式,允许用户在本地编辑并提交更改,解决文件锁定带来的问题。
🛠️ VCS GIS的功能和工具
VCS GIS工具包括并发编辑、冲突解决、版本管理和拓扑检查。它支持导出和查看特定日期的制图状态,集成了高级搜索和数据模型,方便管理和编辑制图数据。
📊 工作流程和示例
典型工作流程包括更新工作副本、在本地编辑并提交更改。用户可以在编辑时看到已修改的几何形状,并选择保留或覆盖冲突的更改。
🎬 演示:初始化和数据模型连接
演示了如何初始化工作副本,选择数据模型并加载图层。用户可以通过本地或远程数据库连接到不同的数据模型,并添加图层到视图中进行编辑。
✏️ 编辑和上传更改
用户在本地编辑几何形状和属性信息,并通过提交工具上传更改。演示了如何检查和验证编辑,确保所有必填字段已填充,然后将更改提交到仓库。
⚠️ 冲突处理示例
演示了两个用户同时编辑相同几何形状时的冲突处理过程。用户可以选择保留自己的更改或接受其他用户的更改,确保最终版本的准确性。
🔄 总结和未来发展
VCS GIS工具将在GBC 2.6版本中提供,该版本目前正在开发中。这个工具将版本控制系统和桌面GIS功能结合,方便管理和发布制图信息。欢迎大家测试并提出反馈。
Mindmap
Keywords
💡版本控制系统
💡开源软件
💡多用户编辑
💡版本化
💡GIS(地理信息系统)
💡集中式版本控制系统
💡去中心化版本控制系统
💡二进制数据
💡数据模型
💡拓扑检查
💡数据冲突
Highlights
在国际地理空间数据管理会议(GPC)上,介绍了一种开源软件中的高级制图编辑版本控制系统。
强调了开源软件中缺乏高级制图编辑的版本控制系统,而新开发的工具填补了这一空白。
介绍了多用户编辑和版本控制两种不同情况,以及它们在文件和数据库中的不同问题。
在文件格式下,多用户编辑存在文件锁定和版本正确性问题。
数据库格式下,多用户编辑需要高频率连接,并且难以管理编辑冲突。
版本控制方面,文件格式的版本命名和恢复存在困难。
数据库虽然可以创建版本备份,但恢复旧版本同样不易。
提出了使用版本控制系统解决多用户编辑和版本控制问题的想法。
介绍了几种现有的版本控制系统,如SVN、Git等,但它们主要针对文本文件,对二进制数据效率不高。
提出了一种新的GIS版本控制系统,专为地理信息数据设计,并集成到桌面GIS中。
版本控制系统允许编辑矢量图层,并在特定时间恢复几何体的状态。
系统使用中央数据库,如Oracle或PostGIS,处理本地数据。
描述了用户在本地副本上工作,并将更改上传到存储库的工作流程。
提出了解决版本冲突的两种可能方案:锁定选项和复制修改合并模型。
介绍了版本控制系统在桌面GIS中的应用,包括断开服务器编辑、并发编辑和冲突解决。
展示了版本控制系统的高级搜索工具和数据模型,以提高编辑效率。
介绍了版本控制系统的工作流程,包括更新工作副本、编辑本地副本和提交更改。
演示了版本控制系统在实际编辑和冲突解决中的应用示例。
版本控制系统GIS从GBC 2.6版本开始可用,目前处于开发阶段,但已有多个构建版本可供测试。
强调了版本控制系统GIS不仅是桌面GIS工具,还整合了版本控制功能,方便维护和发布地理信息。
介绍了版本控制系统GIS如何与GBC套件的其他产品集成,如GBC Desktop、GBC Online和GB Sigmaps。
演讲结束,邀请观众提问,并提供了联系邮箱[email protected]以获取更多信息。
Transcripts
hello everybody we are going to continue
with a new journey at the
international gpc conference
and i'm going to speak about a version
control system on gbc desktop advanced
cartography editing in open source
software
first of all i'm going to share a
desktop
and i'm going to start the presentation
well first of all
i want to
highlight the
the title
the open source software
because
there is there wasn't anything about a
advanced cartography editing
uh
inversion control system in open source
software
and now we have developed this uh
this tool in gbc desktop
i we have two different situations first
one is the multi-user editing
and the second one is the versioning
for the voltages multi-user editing
situation we have two different
options when we work with shape files or
other formats based on files and when we
work when we work with a databases
for the for the first case uh we can
have a
several problems for example when only
one user can simultaneously modify a
file so the file only can be modified by
a one user
two different users can edit this file
but in their computers
in their local copy so
there is a problem because we don't know
which is the correct shape file
when we work with databases
the problem is that
they
they need the highest peak connection
connections
and
about a user's editing there are
different cases
and the problems are
when two users are editing the different
features at the same time and the same
features
at the same time so what changes remains
we don't know it's very
it's very difficult to manage these
these options
about versioning we have to do two
options too when we work with shape
shape files or other similar formats and
when we work with a databases
when we work with j files we can
organize we usually organize our data in
folders with different versions we
usually name the files with one two
three etc so it's not easy to
to recover
a version
of a geometry an old version of a
geometric it's very it's very difficult
to maintain these
options
now with databases we can create a
backups for each version
and but and it's easy to implement but
it's not easy to recover
an old version
they manage all they also manage a high
data volume
and also using specific tools
of the database data database manage
manager
we need administration
administrators specializing the database
manager and tools
dependent on the on this
database manager
so how can we solve these problems
for
multi-user editing and versioning
are there any solutions
implemented in other areas
for this problem we can use a version
control systems
currently there are several version
control systems for example svn that is
a centralized
vcs
and
and it's versus its
web
version
github
that is a decentralized
vcs
mercurial etc but
can we use one of them for
our charter a cartography
are there are they useful for us
they are usually oriented to text files
for example they are they are very
useful for a documentation for
source code etc
but they are inefficient with binary
data and the cartography is in this type
of format not in text
another problem is that decentralized
systems replicate all the information so
it requires a large volumes of to
replicate
large volumes of data and another
problem is that
they are not integrated into other
desktop gis so
they require
external tools that are different
than the tools you that we used for
that we use for editing
so if we can use
any of them
the
the options that we have a
name
then
we can we we have another option uh so
now we have a vcs gis for a gbc desktop
it's a new tool available for gbc
desktop
it's a centralized
version control system it's designed to
manage a cartography
my map data
and the most important thing is that
it's integrated into a desktop gis
i want to summarize
what a version control system is
it allows to edit vector layers and
recover the situation of the geometries
in a concrete time
it stores not only the information but
also the modifications that
the users have made on the
on the geometries
the version control system for eis
it's
focused on the geographic information
and
it uses a central database
mainly oracle or gis
but we can use
ha2
database
for our local
geograph
geometries our local data
the
in this case this version control system
the
each user
is working on their local copy and they
upload the changes to the repository
here we can see a common
problem
there are
two users
they read the same file
the first one
is editing the same the first
the file in their local copy
and the second one
is editing at the same time the first
one uploads the changes to the
repository
and or to the
they replace the
the version first
firstly
and the second user
overrides the other version so
there's a problem because the geometries
of the the changes of the first
upload
of the first user
are lost
we decided we had two options two
possible solutions the first one was
rejected it was the block
option
with this option
the repository was locked
and
only one user can can edit the
information at the same time only one
user and there were there were problems
when sometimes
users
log the files and forget to unlock them
so the other users couldn't work
during the that time they
they could be
diff several hours without
without working because the file was a
was locked
and the adopted solution
was the
copy modification merge model
with this model
the user
work
the user works
on their local copy and they upload the
changes when they finish
and if there is any conflict they decide
which change they want to keep
so with the version control system for
gis available in ubc desktop
we can edit disconnect it from the
server we have concurrent editing
we also can
we also can resolve
the conflicts for example
we have commit
commit update merge and revert
options when we
i use the cartography the editing tools
we also have versioning
so we can access to the previous version
of the data to recover a geometry in a
concrete
date
we also have another tool that is the
export
to export the
cartography to see the cartography how
the cartography was in a specific state
so it's very useful very useful so we
can see for example
how the pavement was
in a municipality how the payment the
pavement of the all designs
were
in a concrete date
and the most important thing
is that it's integrated with a desktop
gis in this case gbc
it's integrated
with this case we have the virtual
editing tools available directly in gbz
desktop
it also allows to include topological
reviews so it's very useful because for
example if we are
uploading
a geometries that overlaps
overlap with the geometry that is
available in the
in the repository we can get a message
with this with this problem so we can
include
a topological
reviews
we also use
data models
for alphanumeric editing it's very
useful because we have
different tables that are connected to
our
our data so for example we can use these
tables for the values
or of the
combos that we have for the different
fields for example
of or another example
we also have advanced search tool search
tools that for example
if we have a shape file with the
vertical signs we can have an external
table
with the
models of the vertical signs so there
are hundreds
of them
so it's very useful the search tools
because we can filter by a type of sign
for example
we want to
find
the
danger signs so we can apply filters and
we can get
the
vertical sign that we want so it's very
useful
and we have we have forms
for a data entry
here you can see an example of the a
screenshot of the
the new version control system eis tool
with all the
all the tools that are available and
here you can see after editing we can
upload the changes we can have
we can see all the changes that we
commit to the repository
i'm going to summarize the typical
workflow
with the version control system gis
after the first thing is to update
our working copy we download the
information of the repository
and
we edit
our local copy first so we are editing
our local copy only we change
the geometries the alpha numerical
information we create new geometries and
finally we submit the changes to the
repository
so after that
the change the changes are uploaded and
after that if there is another user that
has edited
the same
information
we can
if there is any conflict we can decide
if we want to keep our changes or the
changes made by the other user so it's
more or less the typical workflow
for the person control system
here you can see some screenshots but
i'm going to show you a short video
about
how it works
here you can see for example
you can we have to initialize
the working copy first
so we have two rep to select
the repository
in this case i'm connecting to an h2
database in local
but we can connect to a remote remote
repository for example it's very useful
in
in a municipality they can have post gis
or or oracle
with
the information
and instead of connecting
by a local database
we can connect by a remote repository by
url
so it's
another case
and we also can
if we also have to select
the folder and the name of the
working copy
in our computer
so we will edit the working copy in the
local
working copy so now we are going to
select
the name
[Music]
of the working
copy
and the folder in in our computer
and after that we will edit
only the working copy
so we are selecting the folder
and the name
for example the name will be
uh
related
to the repository that we have selected
we have the repository number one so
the name of the file it's very useful to
to name
repository one working copy one for
example
after that
we have the
working copy
and now we have to connect to the
data model
in this case
this we have to select the working copy
and we can get the data models
available at the repository for example
in our municipality we can have
different data models for example
for for sign
for parks
and gardens for
a
inventories so we have we can have
different data models the data models
include
all the
tables
that we can see here for example all the
tables that are
related to this data model in this case
i have the hurban sign and the different
tables are
vertical signs
vertical
sign images
horizontal horizontal signs etc
and all the value tables with the values
of the
different fields now we have
a new
tab
in the add layer
window
that is a version control system gis
with
this option we can
include we can add the layers
from the
working code
so now we can select
for example the pavements
for the base cartography
and
it hasn't been loaded first because
it is a lot of information so we can
download
the information of the layer and after
that we will select the pavement
layer
so we are adding the layers
to our view
from the
repository to an
our working copy
and we have selected the hurban sign
so after that
we add the layers we also can get these
windows that are
the scale the visual visualization scale
because
probably
probably we will have some information
that we want
we don't want to see
in in different zooms for example
so
we will select the scales of the
visualization
and after that
we are going to zoom to layer
we have two groups
of layers the first one is the is the
hurban sign
and the second one is the base
cartography with the pavement pavements
here you can see the vertical signs
the images of these vertical signs are
in a different
table so
after connecting to the data model model
we can get the images of the vertical
signs for example as you can see here
they are related to the to a bracket
also
and we can get different types of
bracket brackets that are in a different
in another table of the of our data
model
so now we are start editing
and we are going to
create new geometries to move geometries
in this case where
we are moving we are copying
uh
as an arrow
and
we are going to move it
to another to another location
and we are going to copy this crosswalk
to the other side
of the cross
so we are going to copy it
and we have a new geometries an arrow
and for
rectangles
of the a
course wall
so we are editing our working copy
it's very important very important we
are editing
only our working copy and after that we
will upload
the changes to the repository
we can also edit
the
alphanumeric information and here we can
see
it's a customized
form with the different combos the the
values of the combos are in a different
tables of the word of the data model
we can have
date fields
and we can have also
we can
we can customize it with the mandatories
fields so they are in red color
and if there is any co any
if there is any field that is not a
field
filled
we
we will get a message with the
with a cross a red cross
that we have to fill the the field
so
we have changed the color of the arrow
you can see here in that we have changed
the color of the of the arrow
and after that
we have a new tool
to check
the
geometries that we have edited
if there is one of the lines
in red color
is that
there is a problem because there were
there was a mandatory field at least one
mandatory field
without a
without a feeling
so now
we have finished editing
and now we are going to see the changes
so here we can see we can select
the our working copy
and we have the changes that we have
made
we select the table
we have a line two
of this layer
and several
geometries
at their horizontal signals
we can zoom to the
to the different geometries that we have
modified or added
and we have
we are uploading the changes to the
repository so if there is another user
that is working in another computer
the other user have to it has to
download
the changes from the repositories to
update the changes
so
now we have updated the information
at the repository from our
working copy our local working copy
and now
i will show you
another case about a conflicts between
two users
so it has finished
and
now we have two different users we are
working on in the same gbc
application but it replica it
shows that it a different
as it was different users
first user and the second user
so it's
the same case
the first user the second user
has to download
the changes that the other user have
made we we can see these
geometries that are not uploaded that
are not
updated
in this in the user number two
so then user number two
has to
update the information from the
repository here we can see
the second user
can't
upload the changes
that he
he has made
because he has a to update
the changes from the repository first
so now we will see
the changes at the repository
and
he will
update
their local copy
from here
now we can see the two geometries that
the other user
had changed
and now the second user can upload the
geometry
okay first before
uploading changes
the user has to check if there is any
any
change at the repository
and now we can see
the first user
has a has update
updated the information too
and now we are going to see a second
case
when
two users are editing the same feature
the same geometry
the first user
has
changed the geometry to the other side
to the right side
and the second user has
a change they have has moved the
geometry
uh
to this position so there is a there is
a conflict the
the same geometry with two different
changes by the first user and the second
user
so
the first user
has uploaded the changes
and now the second user
has to decide
if
he keep
he keeps the change of the first user
or
his
change
so
in this case he has decided to keep his
change
so after that
we can see
that the
the geometry
here we can see the other
change so now he has to decide
which change he wants to keep
and he has this option
so
we he can do the the other option to
keep the
the change of the of the other user or
his
change
and after that
we can see that the change
that will remain
is this one
okay i'm going to continue
to finish the presentation
the version control system for eis is a
is available from gbc 2.6 version
it's a version that it's
in development but there are several
builds that you can test
and you can check the these
this new tool
okay so the final version will be
available
soon
and
that's not just a version control system
that's
not a just a desktop vis
but it combines
both things in one application the
desktop eis ebc desktop with the version
control system inside the application
it will it allows us to
to maintain and prepare the cartographic
information
and we can publish this information
later in our
for example in our
geoportals so it's integrated with it
with the products of the gb6 suite dbc
desktop gpc online and gb sigmaps
and thank you very much
i'm going to see if there is any
question
at the at the chat
and if there isn't any question you can
ask us
at info
gbc.com
if you have any question about
this tool
and we can
[Music]
we can reply
to this to this mate
so there isn't any question so i'm going
to finish this presentation here
and i invite you to to continue with the
next presentation
today and tomorrow
thank you very much
and see you
関連動画をさらに表示
UI Toolkit Runtime Data Binding and Logic
Introduction to windows | computer software language learning | Computer Education for All
Unreal Engine 5 RPG Tutorial Series - #20: AI Behavior Trees Patrolling
Model Predictive Control of Boost Converter
Unreal Engine 5 RPG Tutorial Series - #14: Equipment System
Compulsory A - Chapter 1.1 - Information System
5.0 / 5 (0 votes)