Example #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) + ".")
Example #2
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)+".")
Example #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) + "."
            )
Example #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) + ".")
# try the update
wc = [tmp_dir+"/issue357_wc0.sqlite", tmp_dir+"/issue357_wc1.sqlite"]
for f in wc:
    if os.path.isfile(f): os.remove(f) 
    versioning_base.checkout("dbname=epanet_test_db", ['epanet_trunk_rev_head.junctions', 'epanet_trunk_rev_head.pipes'], f)

scur = []
for f in wc: scur.append(versioning_base.Db( dbapi2.connect( f ) ))

scur[0].execute("INSERT INTO pipes_view(id, start_node, end_node, GEOMETRY) VALUES ('2','1','2',GeomFromText('LINESTRING(1 1,0 1)',2154))")
scur[0].execute("INSERT INTO pipes_view(id, start_node, end_node, GEOMETRY) VALUES ('3','1','2',GeomFromText('LINESTRING(1 -1,0 1)',2154))")
scur[0].commit()


versioning_base.commit( wc[0], 'commit 1 wc0', "dbname=epanet_test_db")
versioning_base.update( wc[1], "dbname=epanet_test_db" )

scur[0].execute("UPDATE pipes_view SET length = 1")
scur[0].commit()
scur[1].execute("UPDATE pipes_view SET length = 2")
scur[1].execute("UPDATE pipes_view SET length = 3")
scur[1].commit()

versioning_base.commit( wc[0], "commit 2 wc0", "dbname=epanet_test_db" )
scur[0].execute("SELECT OGC_FID,length,trunk_rev_begin,trunk_rev_end,trunk_parent,trunk_child FROM pipes")
print '################'
for r in scur[0].fetchall():
    print r

scur[0].execute("UPDATE pipes_view SET length = 2")
scur[0].execute("DELETE FROM pipes_view WHERE OGC_FID = 6")
Example #6
0
#!/usr/bin/python
import versioning_base
from pyspatialite import dbapi2
import psycopg2
import os
import shutil

test_data_dir = os.path.dirname(os.path.realpath(__file__))
tmp_dir = "/tmp"

# create the test database

os.system("dropdb epanet_test_db")
os.system("createdb epanet_test_db")
os.system("psql epanet_test_db -c 'CREATE EXTENSION postgis'")
os.system("psql epanet_test_db -f " + test_data_dir + "/issue287_pg_dump.sql")

# try the update
shutil.copyfile(test_data_dir + "/issue287_wc.sqlite",
                tmp_dir + "/issue287_wc.sqlite")
versioning_base.update(tmp_dir + "/issue287_wc.sqlite",
                       "dbname=epanet_test_db")
versioning_base.commit(tmp_dir + "/issue287_wc.sqlite", "test message",
                       "dbname=epanet_test_db")
#!/usr/bin/python
import versioning_base
from pyspatialite import dbapi2
import psycopg2
import os
import shutil

test_data_dir = os.path.dirname(os.path.realpath(__file__))
tmp_dir = "/tmp"

# create the test database

os.system("dropdb epanet_test_db")
os.system("createdb epanet_test_db")
os.system("psql epanet_test_db -c 'CREATE EXTENSION postgis'")
os.system("psql epanet_test_db -f " + test_data_dir + "/issue287_pg_dump.sql")

# try the update
shutil.copyfile(test_data_dir + "/issue287_wc.sqlite", tmp_dir + "/issue287_wc.sqlite")
versioning_base.update(tmp_dir + "/issue287_wc.sqlite", "dbname=epanet_test_db")
versioning_base.commit(tmp_dir + "/issue287_wc.sqlite", "test message", "dbname=epanet_test_db")
Example #8
0
        ['epanet_trunk_rev_head.junctions', 'epanet_trunk_rev_head.pipes'], f)

scur = []
for f in wc:
    scur.append(versioning_base.Db(dbapi2.connect(f)))

scur[0].execute(
    "INSERT INTO pipes_view(id, start_node, end_node, GEOMETRY) VALUES ('2','1','2',GeomFromText('LINESTRING(1 1,0 1)',2154))"
)
scur[0].execute(
    "INSERT INTO pipes_view(id, start_node, end_node, GEOMETRY) VALUES ('3','1','2',GeomFromText('LINESTRING(1 -1,0 1)',2154))"
)
scur[0].commit()

versioning_base.commit(wc[0], 'commit 1 wc0', "dbname=epanet_test_db")
versioning_base.update(wc[1], "dbname=epanet_test_db")

scur[0].execute("UPDATE pipes_view SET length = 1")
scur[0].commit()
scur[1].execute("UPDATE pipes_view SET length = 2")
scur[1].execute("UPDATE pipes_view SET length = 3")
scur[1].commit()

versioning_base.commit(wc[0], "commit 2 wc0", "dbname=epanet_test_db")
scur[0].execute(
    "SELECT OGC_FID,length,trunk_rev_begin,trunk_rev_end,trunk_parent,trunk_child FROM pipes"
)
print '################'
for r in scur[0].fetchall():
    print r