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)+".")
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) + "." )
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) + ".")
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")