Exemple #1
0
    def update(self):
        """merge modifiactions since last update into working copy"""
        print "update"
        if self.unresolved_conflicts():
            return
        layer = QgsMapLayerRegistry.instance().mapLayer(self.current_layers[0])
        uri = QgsDataSourceURI(layer.source())

        late_by = 0

        if layer.providerType() == "spatialite":
            late_by = versioning_base.late(uri.database(), self.pg_conn_info())
        else:  # postgres
            late_by = versioning_base.pg_late(self.pg_conn_info(),
                                              uri.schema())
        if late_by:
            if layer.providerType() == "spatialite":
                versioning_base.update(uri.database(), self.pg_conn_info())
                rev = versioning_base.revision(uri.database())
            else:  # postgres
                versioning_base.pg_update(uri.connectionInfo(), uri.schema())
                rev = versioning_base.pg_revision(uri.connectionInfo(),
                                                  uri.schema())

            # Force refresh of map
            if self.iface.mapCanvas().isCachingEnabled():
                self.iface.mapCanvas().clearCache()
                self.iface.mapCanvas().refresh()
            else:
                self.iface.mapCanvas().refresh()

            # Force refresh of rev number in menu text
            if layer.providerType() == "spatialite":
                self.info.setText(uri.database().split("/")[-1] +
                                  ' <b>working rev</b>=' + str(rev))
            else:
                self.info.setText(uri.database() + ' <b>working rev</b>=' +
                                  str(rev))

            if not self.unresolved_conflicts():
                QMessageBox.warning(
                    self.iface.mainWindow(), "Warning",
                    "Working copy was late by " + str(late_by) +
                    " revision(s).\n"
                    "Now up to date with remote revision " + str(rev - 1) +
                    ".")
        else:
            if layer.providerType() == "spatialite":
                rev = versioning_base.revision(uri.database())
            else:  # postgres
                rev = versioning_base.pg_revision(uri.connectionInfo(),
                                                  uri.schema())
            QMessageBox.information(
                self.iface.mainWindow(), "Info", "Working "
                "copy already up to date with remote revision " +
                str(rev - 1) + ".")
    def update(self):
        """merge modifiactions since last update into working copy"""
        print "update"
        if self.unresolved_conflicts():
            return
        layer = QgsMapLayerRegistry.instance().mapLayer(
                self.current_layers[0] )
        uri = QgsDataSourceURI(layer.source())

        late_by = 0

        if layer.providerType() == "spatialite":
            late_by = versioning_base.late(
                    uri.database(), self.pg_conn_info() )
        else: # postgres
            late_by = versioning_base.pg_late(
                    self.pg_conn_info(), uri.schema() )
        if late_by:
            if layer.providerType() == "spatialite":
                versioning_base.update( uri.database(), self.pg_conn_info() )
                rev = versioning_base.revision( uri.database() )
            else: # postgres
                versioning_base.pg_update( uri.connectionInfo(), uri.schema() )
                rev = versioning_base.pg_revision(
                        uri.connectionInfo(), uri.schema() )

            # Force refresh of map
            if self.iface.mapCanvas().isCachingEnabled():
                self.iface.mapCanvas().clearCache()
                self.iface.mapCanvas().refresh()
            else:
                self.iface.mapCanvas().refresh()

            # Force refresh of rev number in menu text
            if layer.providerType() == "spatialite":
                self.info.setText( uri.database().split("/")[-1] +' <b>working rev</b>='+str(rev))
            else:
                self.info.setText( uri.database() +' <b>working rev</b>='+str(rev))

            if not self.unresolved_conflicts():
                QMessageBox.warning( self.iface.mainWindow(), "Warning",
                "Working copy was late by "+str(late_by)+" revision(s).\n"
                "Now up to date with remote revision "+str(rev-1)+".")
        else:
            if layer.providerType() == "spatialite":
                rev = versioning_base.revision( uri.database() )
            else: # postgres
                rev = versioning_base.pg_revision(
                        uri.connectionInfo(), uri.schema() )
            QMessageBox.information( self.iface.mainWindow(), "Info","Working "
            "copy already up to date with remote revision "+str(rev-1)+".")
Exemple #3
0
    def update(self):
        """merge modifiactions since last update into working copy"""
        print "update"
        if self.unresolved_conflicts():
            return
        layer = QgsMapLayerRegistry.instance().mapLayer(self.current_layers[0])
        uri = QgsDataSourceURI(layer.source())

        if layer.providerType() == "spatialite":
            versioning_base.update(uri.database(), self.pg_conn_info())
            rev = versioning_base.revision(uri.database())
        else:  # postgres
            versioning_base.pg_update(uri.connectionInfo(), uri.schema())
            rev = versioning_base.pg_revision(uri.connectionInfo(), uri.schema())

        if not self.unresolved_conflicts():
            QMessageBox.information(
                self.iface.mainWindow(), "Notice", "Your are up to date with revision " + str(rev - 1) + "."
            )
Exemple #4
0
    def update(self):
        """merge modifiactions since last update into working copy"""
        print "update"
        if self.unresolved_conflicts():
            return
        layer = QgsMapLayerRegistry.instance().mapLayer(self.current_layers[0])
        uri = QgsDataSourceURI(layer.source())

        if layer.providerType() == "spatialite":
            versioning_base.update(uri.database(), self.pg_conn_info())
            rev = versioning_base.revision(uri.database())
        else:  # postgres
            versioning_base.pg_update(uri.connectionInfo(), uri.schema())
            rev = versioning_base.pg_revision(uri.connectionInfo(),
                                              uri.schema())

        if not self.unresolved_conflicts():
            QMessageBox.information(
                self.iface.mainWindow(), "Notice",
                "Your are up to date with revision " + str(rev - 1) + ".")
Exemple #5
0
pcur.execute(
    "UPDATE epanet_working_copy_cflt.pipes_view SET length = 8 WHERE pid = 1")
pcur.commit()
prtTab(pcur, 'epanet.pipes')
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_diff")
for l in pcur.con.notices:
    print l
assert (2 == pcur.fetchone()[0])

pcur.execute(
    "INSERT INTO epanet_working_copy_cflt.pipes_view(id, start_node, end_node, geom) VALUES ('3','1','2',ST_GeometryFromText('LINESTRING(1 -1,0 1)',2154))"
)
pcur.commit()
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
versioning_base.pg_update("dbname=epanet_test_db", "epanet_working_copy_cflt")
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
prtTab(pcur, 'epanet_working_copy_cflt.pipes_update_diff')

pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts")
assert (2 == pcur.fetchone()[0])
pcur.execute(
    "SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts WHERE origin = 'mine'"
)
assert (1 == pcur.fetchone()[0])
pcur.execute(
    "SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts WHERE origin = 'theirs'"
)
assert (1 == pcur.fetchone()[0])

prtTab(pcur, 'epanet_working_copy_cflt.pipes_conflicts')
    pcur = versioning_base.Db(psycopg2.connect("dbname=epanet_test_db"))

    tables = ['epanet_trunk_rev_head.junctions', 'epanet_trunk_rev_head.pipes']
    versioning_base.pg_checkout("dbname=epanet_test_db",tables, "wc1")
    versioning_base.pg_checkout("dbname=epanet_test_db",tables, "wc2")

    pcur.execute("UPDATE wc1.pipes_view SET length = 4 WHERE pid = 1")
    pcur.commit()
    prtTab( pcur, "wc1.pipes_diff")
    versioning_base.pg_commit("dbname=epanet_test_db","wc1","msg1")

    pcur.execute("UPDATE wc2.pipes_view SET length = 5 WHERE pid = 1")
    pcur.commit()
    prtTab( pcur, "wc2.pipes_diff")
    versioning_base.pg_update("dbname=epanet_test_db","wc2")
    prtTab( pcur, "wc2.pipes_diff")
    prtTab( pcur, "wc2.pipes_conflicts")

    pcur.execute("SELECT COUNT(*) FROM wc2.pipes_conflicts WHERE origin = 'mine'")
    assert( 1 == pcur.fetchone()[0] )
    pcur.execute("SELECT COUNT(*) FROM wc2.pipes_conflicts WHERE origin = 'theirs'")
    assert( 1 == pcur.fetchone()[0] )

    pcur.execute("DELETE FROM wc2.pipes_conflicts WHERE origin = '"+resolution+"'")
    prtTab( pcur, "wc2.pipes_conflicts")

    pcur.execute("SELECT COUNT(*) FROM wc2.pipes_conflicts")
    assert( 0 == pcur.fetchone()[0] )
    pcur.close()
prtHid(pcur, 'epanet_working_copy_cflt.pipes_view')
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
pcur.execute("UPDATE epanet_working_copy_cflt.pipes_view SET length = 8 WHERE pid = 1")
pcur.commit()
prtTab(pcur, 'epanet.pipes')
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_diff")
for l in pcur.con.notices: print l
assert( 2 == pcur.fetchone()[0] )


pcur.execute("INSERT INTO epanet_working_copy_cflt.pipes_view(id, start_node, end_node, geom) VALUES ('3','1','2',ST_GeometryFromText('LINESTRING(1 -1,0 1)',2154))")
pcur.commit()
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
versioning_base.pg_update( "dbname=epanet_test_db", "epanet_working_copy_cflt" )
prtTab(pcur, 'epanet_working_copy_cflt.pipes_diff')
prtTab(pcur, 'epanet_working_copy_cflt.pipes_update_diff')

pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts")
assert( 2 == pcur.fetchone()[0] )
pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts WHERE origin = 'mine'")
assert( 1 == pcur.fetchone()[0] )
pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts WHERE origin = 'theirs'")
assert( 1 == pcur.fetchone()[0] )

prtTab(pcur, 'epanet_working_copy_cflt.pipes_conflicts')

pcur.execute("DELETE FROM epanet_working_copy_cflt.pipes_conflicts WHERE origin = 'theirs'")
pcur.commit()
pcur.execute("SELECT COUNT(*) FROM epanet_working_copy_cflt.pipes_conflicts")